최근 프로그래머스에서 열린 총 세 번의 모의고사가 끝나고 실전에서 부딪히는 경험에 대한 쿨타임이 돌았기 때문!
카카오에 입사하고 싶지 않냐구요?
아 물론 하고 싶지만, 그건 제 맘대로 되는 게 아니구,
코딩테스트 치는 건 제 맘이니깐 지원했습니다.
카카오... 카톡 안 쓰고 싶은 마음이 왕왕 들었다...
그러고 싶은 만큼 어려웠는데, 그 어려운 정도가 이런 느낌이었다.
어? 조금 시간 두고 풀면 풀릴 것 같은데?
가 아니라
어? 이거 못 풀겠는데?
였다.
하긴 생각해보면,
프로그래머스에서 카카오의 이전 코딩테스트 문제들을 풀어볼 수 있는데,
그때 level 3~4 문제들을 시도할 때마다 못 풀었었다.
뭔가 어떤 알고리즘으로 풀면 되겠다 싶은 것들은 시간초과가 나거나,
풀다보니 뭔가 이상한 점을 느끼고 답을 보면 생전 처음보는 알고리즘 유형이었다.
그래서 코테 전에 누적합
, 백트래킹
을 위주로 봤었다!
도움이 됐는지는... 모르겠다!
아무튼 결과적으로 보자면,
시험이 시작되자마자 7문제를 쭉 읽었다. 문제 양이 상당해서 읽는 데만 해도 거의 20분이 넘었던 것 같다. 심지어 문제의 예시 조차 이해되지 않는 문제도 있어서 절망스럽게 시작했다.
다 읽은 뒤, 왠지 모르게 끌리는 5번 문제를 잡다가
코드가 50줄이 넘어가길래 뭔가 이상한 점을 느껴 1번 문제를 풀었다.
1번의 유형은 다른 코딩테스트에서도 자주봤었던 유형의 구현이었고,
계산하는 데 있어서 일일이 하는 것보다 기준을 잡고 환산하는 과정을 추가하니 쉽게 풀렸다.
그쯤이 거의 2시간이 지난 후였고, 처음 전체 문제를 훑고 나서 판단한 것에 의해, 내가 풀 수 있는 문제가 없다는 생각이 들었지만, 한 문제밖에 못 풀고 자체 마감하기에는 내 자존심이 허락하지 않았다!
그래서 풀다 만 5번 문제를 시간초과와 오답을 신경쓰지 않고 냅다 문제를 풀었다.
5번 문제도 유형이 구현이었는데, 거기에서 그래프 탐색을 첨가했다.
그런데 풀면서 틀렸습니다
가 아니라 런타임 에러
가 발생했다.
오히려 좋아! 틀렸습니다
는 어디서 어떤 테스트 케이스로 틀렸는지 알 수가 없어서 답답하기 때문이다.
보통 런타임 에러는 반복문 때 배열 인덱스가 out of range가 걸리는 경우가 많아 처음부터 쭉 반복문이 있는 코드를 봤는데, 그제서아 내가 150줄 넘게 코드를 작성했던 것을 확인했다. 뿌듯하면서도, 이 문제 못 맞추면 평생 한 맺힐 것 같다는 생각으로 오류 잡기에 몰두했다.
다행히 예상대로 없는 것에 대한 인덱스 접근이 이루어진 것을 확인하고 해당 부분을 일부 수정하니 맞혔다!
환호하는 그 시점에 2시간 남았던 것 같고, 4번 문제를 도전했다. 유형은 그래프(?) 아마도...
분명히 내가 생각하는 아이디어가 맞는데, 60% 정답에서 반례들을 20개 넘게 만들고 조건들을 추가해봐도 오르지가 않았다.
(그렇다면 내 아이디어가 틀린 거겠지... 아니면 문제 이해를 완전히 잘못 했다거나!)
나중에 프로그래머스에 문제가 올라온다면 계속해서 도전할 예정이다!
그래서 총 7문제 중에 첫번째와 다섯번째, 2문제를 맞혔고,
테스트 종료 때까지 4번 문제를 붙잡고 있었다.
문제를 한 번 전체적으로 훑은 것은 굉장히 잘 했지만, 거기서 세부 조건들을 읽지 않고 바로 포기해버린 것이 정말 아쉽다. 분명히 쉽게 접근할 수 있었던 문제들이었을텐데, 막연히 이거 구현 가능함?
이라고 생각하고 던진 것들이 있었을 것이다.
그리고 두 문제를 풀고 사실 낙담해 있었는데, 다행히 여러 후기들을 보니 문제들이 대부분 사람들에게 어렵게 느껴졌다는 말이 있어서 다소 안심이 되었다. 물론 코딩테스트 합격은 기대하고 있진 않지만 이렇게 실전으로 푸는 게 실력 점검과 동시에 급진적인 실력 향상에 도움이 된다고 생각한다.
(무엇보다 코드 150줄 쓰고 문제 맞힌 내 자신이 대단하다고 느껴 자신감이 조금 들긴 했다.)
손도 못 댄 문제들에 대해서는 아직 연습만이 살 길인 것 같다. 특히나 그래프는 조건이 조금이라도 달라지거나 다른 유형이 붙어버리면 기존 풀이 틀에서 완전히 뒤바뀔 수도 있고, 세심한 조건문 조절이 필요하기 때문에 문제를 더 많이 풀어보고 복습하는 것이 중요한 것 같다.
다음에는...
문제에 대한 막연한 두려움 갖지말고, 시간 초과 무서워 하지 말고 도전하기!
150줄이면 붙어야 합니다! 요런 끈기 높게사주라구여~~ ㅋㅋ 고생 많으셨어요 😉