본문 바로가기

분류 전체보기

(100)
[기말고사 대비용] C++ 객체지향 * 필요 시 변형해서 쓰기. 상속, 다형성, 추상화, 캡슐화 #include using namespace std; class X { public: virtual void method() = 0; }; class A: public X { public: void method() override { } }; class B: public X { public: void method() override { } }; int main(void) { return 0; }
[알고리즘] 정렬 알고리즘 정리 (시간 복잡도, 공간 복잡도, 안정성) 이 외에도 쉘 정렬, 선택 정렬, 도수 정렬 등이 있다.
[Python] 정렬을 마친 두 배열을 병합 정렬하기 - merge() import heapq # heapq 모듈 불러오기 a = [2, 4, 6, 8, 11, 13] b = [1, 2, 3, 4, 9, 16, 21] c = list(heapq.merge(a, b)) # 배열 a와 b를 병합하여 c에 저장 # c == [1, 2, 2, 3, 4, 4, 6, 8, 9, 11, 13, 16, 21] 만약 정렬되지 않은 두 배열 a, b를 병합 정렬해야 한다면 sorted(a + b)를 사용하여야 한다. 그러나 배열 a, b가 모두 정렬되어 있으므로 heapq 모듈의 merge() 함수를 이용하면 더 빠르게 병합 정렬할 수 있다.
[알고리즘] 쉘 정렬 쉘 정렬은 하나의 배열을 여러 개로 쪼개 각각 정렬하는 과정을 반복한 후, 마지막으로 한 번에 정렬하는 기법이다. 이 때, 특정 간격으로 떨어진 요소들을 모아 정렬하는 것이 특징이다. 다음 그림에서는 4칸씩 떨어진 2개의 요소들을 정렬하는 경우를 보여준다. 즉, (8, 7), (1, 6), (4, 3), (2, 5)를 각각 정렬한다. 그 후 2칸씩 떨어진 요소 4개씩, 즉 (7, 3, 8, 4), (1, 2, 6, 5)를 묶어 각각 정렬한다. 그러면 전체 배열은 최종적으로 (3, 4, 7, 8, 1, 2, 5, 6)이 되며, 최종적으로 이를 단순 삽입 정렬하면 된다. 세 번의 정렬 과정에서, 기준 간격은 4 -> 2 -> 1로 변한다. 그런데 이와 같이 간격들이 서로 배수가 되면, 이미 정렬한 원소들을 ..
[Android Studio] ImageView 사용법 (링크) https://recipes4dev.tistory.com/91 안드로이드 이미지뷰 기본 사용법. (Android ImageView) 1. 안드로이드 ImageView 구글 플레이 앱 스토어(https://play.google.com/store/apps)에 등록된 수 많은 안드로이드 앱의 UI 화면을 보면, 대부분의 요소들이 텍스트와 이미지로 구성되어 있습니다. 텍스트를 recipes4dev.tistory.com 이번 과제는 일단 구글신(?)의 도움을 받고... 자세한 부분은.. 방학에 보충하자 ^^;;
[알고리즘] 8퀸 문제 (재귀) 8 * 8 크기의 체스판에 8개의 퀸을 배치하는 경우의 수를 생각해 보자. 각 행과 열, 대각선에서 퀸이 2개 있으면 안 된다. ex) □ □ ■ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ □ □ □ □ □ □ ■ □ □ ■ □ □ □ □ □ □ □ □ □ ■ □ □ □ □ 이 소스 코드에서 문제를 푸는 방식은 다음과 같다. 0열 ~ 7열까지 퀸을 순서대로 배치하되, 배치하려는 행과 대각선에 다른 퀸이 있는지를 확인한다. # 8퀸 문제 알고리즘 구현하기 pos = [0] * 8 # 각 열에 배치한 퀸의 위치 flag_a = [False] * 8 # 각 행에 퀸을 배치했는지 체크 flag_b = [False] * 15..
[Python] math.factorial() 함수 math 모듈을 import하여 factorial() 함수를 사용할 수 있다.
[알고리즘] 단순 삽입 정렬 * 출처: 알고리즘 교재 p240 ~ p243 1. 단순 삽입 정렬이란? 아직 정렬되지 않은 부분의 맨 앞 원소를, 정렬된 부분의 알맞은 위치에 삽입하는 알고리즘이다. 2. 특징 1) 서로 떨어져 있는 원소를 교환하지 않으므로 안정적이다. 2) 시간 복잡도는 O(N^2)이다. 3. 소스 코드 # 단순 삽입 정렬 알고리즘 구현하기 from typing import MutableSequence def insertion_sort(a: MutableSequence) -> None: """단순 삽입 정렬""" n = len(a) for i in range(1, n): j = i # j : 1 ~ 6 tmp = a[i] # tmp : a[1] ~ a[6] while j > 0 and a[j - 1] > tmp: a..