알고리즘/코딩 테스트 , 대회 후기

프로그래머스 월간 코드 챌린지 시즌1 테스트 (11월) 후기

BEFORE START


 

2020년 11월 5일 목요일, 6시에 퇴근 후에 저녁을 먹고 카페로 가서 7시 30분부터 진행하는 월간 코드 챌린지 시즌 1의 마지막 테스트에 참여하였다.

월간 코드 챌린지 시즌 1은 9월, 10월, 11월 각각 4문제씩 출제하여 총 5문제 이상 풀어내면 이벤트에 응모할 수 있고, 경품은 키보드, 굿즈, 기프티콘, 편의점 상품권 등이 있었다. 약 6~7천 명 정도 응시를 하는데 경품이 추첨이 100명이라 약간 기대할 수 있을지 모르겠다. (치킨 먹고싶다)

 

하지만 지금 나는 9월에는 개인 사정으로 응시를 못했었고, 10월에는 4문제 중 2 솔, 나머지 두 문제는 부분점수를 받아 이번 11월 테스트에서 최소 3 솔은 해야 하는 상황이었다. 경품 응모 조건을 채우는 것을 목표로 가볍게 잡았었는데 9월 테스트를 치지 못했던 것이 이렇게 큰 변수로 다가올지 어떻게 알았겠는가..

 

이번에도 혹시나 서버가 터질까봐 페이지 새로고침 하면서 대기하고 있었는데 다행히 10월처럼 서버가 터지지는 않았다. 

 

언어는 Python3을 사용했다.

 


진행


1번은 내적을 구하는 알고리즘을 모르는 코딩 초보자들도 쉽게 풀 수 있을 만큼 정말 쉬운 문제였다.

1분대에 풀었는데 등수가 200등대였다..

 

2번은 1이 될 때까지 이진수 변환을 반복하면서 값을 찾아나가는 마찬가지로 아주 쉬운 문제였다.

파이썬에는 bin 함수로 이진수를 표현할 수 있어 빠르게 풀 수 있었다.

 

2번까지 푸니 5분 정도밖에 안 걸려서 왜 이렇게 쉽지..? 생각했다.

하지만 3번에서.. 상당히 많은 헛걸음질을 했다.

 

3번은 스타 수열을 찾는 문제였는데 약간 그리디 한 느낌으로 처음엔 DP로 접근했지만 어느샌가 보니 Casework를 하고 있어 다 지우고 처음부터 새로 짰다. 결국은 스택과 flag를 사용해서 풀었는데 상당히 헛걸음질을 많이 한 문제였다. 나중에 다시 한번 풀어봐야겠다.

 

4번을 잡으니 약 30분 정도 남아있었다. 보자마자 여러 가지 방법이 떠올랐는데 DFS, 다익스트라, DP 등.. 하지만 시간이 없어 시간 초과 날 것을 알지만 리프 노드에서 시작하여 DFS로 대충 슥슥 해서 제출했다. 지금 생각나는 방법은 dp[N][2] 배열을 만들어 다익스트라랑 결합하는 방법인데 될지는 모르겠다.

어려운 문제였다..

 


결과 & 느낀 점


최종 스코어는 아래와 같다.

 

10월에는 110위를 했는데 이번에는 100위 안에 들었다.

일단 3 솔은 했으니 만족하지만 3번에서 너무 시간을 허비해 아쉬웠다. 아직까지 가야 할 길은 멀구나 ㅠㅠ

나 자신 힘내자!! 화이팅이다!