짤줄 알면 안짜도 됩니다.
짤줄 모르면 짜는게 좋습니다.
15686번 - 치킨 배달
목적이 기본적인 자료구조 알고리즘 공부냐 아니면 좀 "이 바닥" 문제 풀이냐에 따라 다를 거 같네요. 문제 풀이 하는 관점에서 제 의견은 아래 정도입니다.
next_permutation 정도는 딱히 안 짜봐도 상관없다고 생각합니다. 알면 좋은데 막 중요한 건 아닌 것 같습니다.
정렬은 중요한 건 맞는데 그래도 딱히 짤 필요는 없는 것 같습니다. 알고리즘 문제를 푸는 거면 비교 기반 O(n log n) 정렬은 내장 함수를 쓰면 해결됩니다.
자료구조는 *각 자료구조의 특성을 어느정도 다 이해한다는 가정 하에* 안 짜봐도 상관없다고 생각합니다. 즉, 각 자료구조가 어떤 연산을 "말이 되는 시간에" 할 수 있는지 그런 거요. 위에 두개는 어떻게 동작하는지 몰라도 문제를 푸는데에는 그다지 지장이 없을 것 같은데, 자료구조는 뭐가 다른지 이해를 못 하고 써버리는 경우가 있어서 그런 일이 안 일어날 정도로만 알면 된다고 생각합니다.
댓글을 작성하려면 로그인해야 합니다.
henongj 3년 전
이 문제를 풀 떄 제가 M, N을 받아 M개중 N개를 고르는 코드를 구현한 적이 없어서
경우의 수 구현 방법을 구글에 검색했습니다.
하나는 재귀호출을 이용한 구현이었고
다른 하나는 STL prev_permutation , next_permutation을 사용하는 방법이었습니다.
일단 STL 가져다 썼습니다
그런데 문득 STL에 의존적이란 생각이 들었습니다.
나중에 C++ 외의 언어도 잘 다루고 싶은데
제대로 구현한 정렬도 퀵정렬 하나고 큐, 스택, 우선순위 큐 모두 STL에서 가져다 써서 문제를 풀고 있어요.
아직 걸음마 수준인데 편법으로 가는게 아닌가 의문이 듭니다.
자료구조나 알고리즘을직접 하나하나 구현해서 실력을 늘리는게 좋을까요
아니면 문제를 어떻게 풀지 생각하고 구현중심으로 STL에 능숙해지는게 좋을까요?