코딩 테스트를 풀어보자
페이지 정보
본문
코딩 테스트에서 가장 먼저 마주하게 될 화면이다.
좌측에는 문제에 대한 설명이 적혀있고
우측 상단에는 코드 입력란이,
우측 하단에는 코드에 대한 결과가 출력된다.
문제를 보면 알 수 있듯
시험자에게 중요한 자질은 '코딩 실력' 보다 '독해력' 이다.
아무리 코딩 실력이 천재적이라 해도, 문제를 이해하지 못하면
결국 문제 자체를 풀 수 없게 되니까 말이다.
일반적으로 문제를 읽었을 때
'문제를 해결할 방안' 이 바로 떠올라야 한다.
그 방안이란 구체적인 코드 내용이 아니라
적어도 어떤 알고리즘을 사용할 것인지에 대한 것을 말한다.
여기서 말하는 '알고리즘' 이란, 위의 문제를 읽자마자
"이거 탐욕법이네" 라는 것을 캐치해내야 한다는 것이다.
(이는 연습을 통해 습득할 수 있다.)
문제는 간단하다.
-30,000 ~ 30,000 의 고속도로에서
각 차량이 IN, OUT 하는 위치가 담긴 목록이 주어질 때
각 차량들이 CCTV를 최소 1번 마주하려면
몇 개의 CCTV가 필요한가 를 묻는 문제이다.
이해 했는가?
이해하는데 성공했다면
이제 필요한 CCTV가 몇 대인지를
어떻게 알아낼 것인지 생각해보라.
코딩 실력은 문제가 되지 않는다.
테스트 시간동안 검색은 자유롭게 허용되며
'방법' 만 생각하면 '방법을 구사하는 코드' 에 대해선
구글이 검색 결과로 보여줄 것이기 때문이다.
알고리즘 머리는 수학적 머리와 관련이 없다.
차량이 고속도로로 IN, OUT하는 매개변수 routes에 대해IN 하는 그 구간마다 CCTV를 설치해주면 된다?
이것도 아이디어가 맞다.하지만 정답은 아닐 수 있다.우리가 구해야 하는 것은 '최소' 개수니까 말이다.
각자의 생각에 따라, 코드에 따라
정답은 수십가지 수백가지가 될 수 있다.
위의 내용은 그 중 가장 간단한 정답 중 하나이다.
코드는 상관이 없다.
위에서 설명한 방법을 이해만 했다면
테스트를 약 80% 합격했다고 봐도 무방하다.
위의 내용을 코드로 작성하면 이렇게 된다.
코드를 작성했다면 코드를 실행하여 채점을 하자.
미리 작성된 프로그램이 작성된 코드를 실행하여
정확성/효율성 측면에서 채점을 할 것이다.
합계가 100점이 아니어도 상관이 없다.
알고리즘만 건재하다면 효율성이 떨어져도 합격할테니까.
이렇게 한 문제를 성공적으로 풀었다.
이제 우리는 남은 문제(평균 3~5문제 출제)를
제한시간(평균 3시간) 내에 풀어서 제출하면 된다.
위에서 설명했던 알고리즘인 '탐욕법' 은
코딩 테스트 문제로 제출되었을 시 쉬운 편에 속한다.
무난히 해결하고 넘겨야 어려운 문제에 시간을 할애할 수 있다.
어려웠는가?
그렇다고 포기하지 말아라.
너도 할 수 있다.
우리 모두 열심히 노력해보자!