1월 15일 (수)

오늘 배운 것

알고리즘 문제 풀이

  1. 프로그래머스 k번째 수 : 의미가 잘 보이게 함수를 두개 나눠서 풀이했다. 다른 사람 풀이를 보니 map,filter,sort 를 한줄로 이어서 람다식으로 한 줄안에 풀이가 가능했다. 시간날 때 리팩토링 해봐야겠다.

  2. 백준 오름차순 정렬: 정렬 알고리즘을 이해는 하겠는데 코드 구현이 아직 어렵다. 코드 보고는 당연히 가능한데 백지에서 완성된 코드까지 작성하는게 많이 어렵다. 사실 엄두도 안날 정도... (버블 정렬은 가능하려나?)

  3. 마음 급하게 먹지 말고 차근차근 배워나가야겠다. 하다가 답답해서 '누워서 읽는 알고리즘' 책을 그냥 누워서 읽었다.

못한다고 자신감 잃지 말기

공부하기

  • 버블 정렬, 삽입 정렬, 퀵 정렬, 머지 정렬, 힙 정렬을 직접 구현해 보자

  • 위 정렬의 장단점과 복잡도에 대해 알아보자

  • count sort와 radix sort의 코드를 이해하보고 장점은 무엇인지 알아보자

오늘의 팁

  • 이론상 무작위 원소의 정렬은 O(nlogn) 의 복잡도를 가진다. 다만 원소의 갯수에 제한이 있다면 (ex: 백만 이하의 자연수) O(n) 정렬도 가능하다.

  • 퀵소트는 면접에서 종종 물어보므로 코드를 외우는 편이 편하다.

  • 퀵소트를 함수형으로 구현할 경우 좀 더 빠르게 구현할 수 있다. (성능이 좋지 않으므로 큰 의미는 없다.)

Last updated