이번 주 일요일에 코테를 봅니다ㅜㅜ
특정 알고리즘이 아닌 구현 문제는 어떤 식으로 공부하는 게 좋을까요? 시뮬레이션 문제라든가...
선생님 강의를 보면 의식의 흐름대로 따라갈 때에는 일리가 있고, 정답으로 가는 길이긴 한데, 막상 문제에 진입하게 되면 어떻게 그 규칙을 발견해야할지 모르겠습니다.. 특히 DP의 점화식을 세우는 것. 어떻게 연습해야할까요 ㅜㅜ
이번 주 일요일에 코테를 봅니다ㅜㅜ
특정 알고리즘이 아닌 구현 문제는 어떤 식으로 공부하는 게 좋을까요? 시뮬레이션 문제라든가...
선생님 강의를 보면 의식의 흐름대로 따라갈 때에는 일리가 있고, 정답으로 가는 길이긴 한데, 막상 문제에 진입하게 되면 어떻게 그 규칙을 발견해야할지 모르겠습니다.. 특히 DP의 점화식을 세우는 것. 어떻게 연습해야할까요 ㅜㅜ
#1.준비
코딩테스트 전에 준비로 가장 좋은 건, 해당 기업의 이전 코딩테스트 문제가 있다면 미리 확인하고 기출 문제를 풀어보는 것을 추천드립니다.
코딩테스트는 벼락치기로 준비되는 부분이 아니기 때문에, 기출 문제 위주로 모르는 부분이 있다면 공부하고, 많은 문제를 접해보시는 것을 추천드립니다.
#2.구현 문제는 어떤 식으로 공부
아래의 질문의 대답과 같습니다.
#3.막상 문제에 진입하게 되면 어떻게 그 규칙을 발견해야할지 모르겠습니다.
어떤 문제를 만나게 되시더라도 완전탐색으로 코드를 먼저 작성해 보시고 최적화를 진행하시면 됩니다.
막상 문제에 진입하게 되었을 때, 아무런 길도 보이지 않는다면, for 반복문을 이용해서 범위 내의 변수를 모두 사용하는 방법으로 코드를 먼저 짜보세요.
그 이후에 최적화를 어떻게 하면 좋을지 고민해보시고, 고민해도 답이 나오지 않는 다면 그 때 다른 사람의 정답을 참고하시면 좋을 것 같습니다.
※시뮬레이션의 경우에는 쉬운 여러 문제가 합쳐진 형태로, 침착하게 하나씩 기능을 구현해나가면 정답이 나옵니다..
#4.DP의 점화식을 세우는 것. 어떻게 연습해야할까요 ㅜㅜ
이건 6강 7강의 수업에서 나옵니다!
꼭 드리고 싶은 말
웹이나 앱을 만들 때에도 모든 구조를 이해한 상태에서 단숨에 코드를 써내려가는 사람은 없습니다.
처음에 기본적으로 들어가야 할 내용들을 채우고 ( 로그인, 회원가입, 홈화면, 등 ) 개선해나가면서 웹을 완성합니다.
코딩테스트도 똑같습니다. 입력과 출력 코드를 작성하고, 먼저 단순한 반복문으로 문제를 해결한 뒤에, 그 코드를 시간복잡도, 공간복잡도에 맞춰서 개선해 나가면 답은 자연스럽게 나옵니다.
당연히 숙련도에 따라 시간이 오래 걸릴 수도, 하루만에 정답을 찾지 못할 수도 있습니다.
영식님께서 제 강의를 3일동안 열심히 들어주시는 것은 감사하지만, 쫓기는 마음으로 빠르게 강의를 듣는다고 해도 깊은 이해가 없다면 코딩테스트는 쉬운 문제도 틀리게 됩니다... ;_;
제가 이 강의를 통해서 반드시 말씀드리고 싶은 내용은 알고리즘은 규칙찾기가 아닌, 완전탐색코드에서 최적화를 통해 개선시켜가는 과정입니다.
규칙을 찾아서 암기시키는 강의들과는 다르고, 백트래킹과 탑다운DP를 모르시는 상태에서 점화식을 빠르게 찾는 방법은 저는 모릅니다.
2주 동안 강의를 듣고, 정말로 제가 강의에서 다루는 것처럼 [완전탐색 > 백트래킹 > 탑다운DP > 바텀업DP ]의 하나의 사이클을 자연스럽게 코드로 작성하실 수 있게 된다면 문제를 보고 규칙을 찾으려고 하지 않으셔도 자연스럽게 알고리즘 문제들을 풀 수 있게 되실 겁니다.
이번 주 일요일 화이팅입니다 :)
답글