Skip to content

hillfolk/code_training

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Programming Code training

문제 해결을 위한 6단계

  1. 문제를 읽고 이해한다.
  2. 문제를 익숙한 용어로 재정의한다.
  3. 어떻게 해결할지 계획을 세운다.
  4. 계획을 검증한다.
  5. 프로그램을 구현한다.
  6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다.

Hello World

프로그래밍 언어를 처음 시작하면서 작성하는 각 언어의 기본 구조의 프로그램을 작성해 본다.

문자열 처리

  • Go

LinkedList

LinkedList

검색

  • Go

정렬

  • O(N^2) 알고리즘
    • 삽입정렬: 전체 배열중 정렬되어 있는 부분 배열에 새 원소를 끼워넣는 일을 반복하는 방식으로 동작 , 삽입정렬의 최선은 이미 정렬된 배열이 입력되는 경우이며 O(N)의 시간복잡도로 수행된다. 최악의 경우는 역순으로 정렬된 경우이며 배열의 모둔 수를 역순으로 비교하면서 앞으로 가저가야 한다.
    • 선택정렬:모든 i 에 대해 A[i..N-1]에서 가장 작은 원소를 찾은ㄷ 뒤 이것을 A[i] 에 넣는 것을 반복하는 방법으로 수행되며 O(N^2)의 시간복잡도를 가진다. 선택 정렬의 경우 반복회수가 A[]의 크기 N에 의해 결정되며 최악과 최선의 결과가 같다.
  • Code

비트 처리

비트 처리에 관련된 코드 연습

HashMap

Regex

Math

  • 최대 연속 구간의 합