- 문제를 읽고 이해한다.
- 문제를 익숙한 용어로 재정의한다.
- 어떻게 해결할지 계획을 세운다.
- 계획을 검증한다.
- 프로그램을 구현한다.
- 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다.
프로그래밍 언어를 처음 시작하면서 작성하는 각 언어의 기본 구조의 프로그램을 작성해 본다.
- Go
- Go
- O(N^2) 알고리즘
- 삽입정렬: 전체 배열중 정렬되어 있는 부분 배열에 새 원소를 끼워넣는 일을 반복하는 방식으로 동작 , 삽입정렬의 최선은 이미 정렬된 배열이 입력되는 경우이며 O(N)의 시간복잡도로 수행된다. 최악의 경우는 역순으로 정렬된 경우이며 배열의 모둔 수를 역순으로 비교하면서 앞으로 가저가야 한다.
- 선택정렬:모든 i 에 대해 A[i..N-1]에서 가장 작은 원소를 찾은ㄷ 뒤 이것을 A[i] 에 넣는 것을 반복하는 방법으로 수행되며 O(N^2)의 시간복잡도를 가진다. 선택 정렬의 경우 반복회수가 A[]의 크기 N에 의해 결정되며 최악과 최선의 결과가 같다.
- Code
비트 처리에 관련된 코드 연습
- 최대 연속 구간의 합