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

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

BEFORE START


2020년 10월 8일 목요일, 회사 끝나고 프로그래머스에서 진행하는 월간 코드 챌린지 시즌1에 참여하였다.

9월부터 11월까지 매달 4문제씩 출제되고 총 12문제 중 5문제 이상 풀면 이벤트에 응모할 수 있는 이벤트다.

나는 9월에 개인 사정으로 인해 참여를 못했다. 때문에 8문제 중 5문제 이상 풀어내야 하는 상황..

10월 / 11월 각각 최소 2~3문제씩은 풀어야 하는데 잘할 수 있을지 모르겠다.

이벤트에 응모하는걸 목표로 10월 11월에 도전해보자.

 

오후 7시 30분부터 시작이었는데 접속이 20분가량 안 돼서 20분이 연장되어 오후 10시 50분에 종료되었다.

오늘은 시험을 치는 사람들이 많았나 보다.. 나 같은?

 

언어는 Python3를 사용했다.


진행


1번 문제는 주어진 수를 3진수로 변환 후 뒤집어서 다시 10진수로 바꾸는 아주 쉬운 문제였다.

1번 문제가 어렵다면 진수 변환 문제를 많이 풀어보는 것이 좋을 것 같다.

 

2번 문제는 분할 정복 문제인데 재귀 문제를 많이 풀어봤다면 쉽게 풀 수 있을 것이다.

백준에 이 문제와 비슷한 문제가 많으니 한번 찾아서 풀어보면 좋을 것 같다.

 

3번 4번 문제는 만점을 받지 못했는데.. 문제 나오면 다시 한번 풀어볼 생각이다.

프로그래머스에서 책정한 난이도는 각각 레벨 4, 레벨 5이다.

간단한 문제는 아니라는 것인데 시간제한이 있어서인지 뭔가 조급하게 생각했던 감이 없지 않아 있다.

 

3번 문제를 보고 바로 다익스트라를 떠올렸는데 지금 생각해보면 트리 형태이기 때문에 거리를 구하는 것은 그냥 BFS를 해도 됐었다.. 다익스트라로 풀어 효율성 테스트는 통과하지 못했다.

LCA도 생각했었는데 아직 LCA 알고리즘에 익숙하지 않아서 맞는지 잘 모르겠고,, 세그먼트 트리도 생각했지만 뭔가 세그트리르 풀면 너무 복잡해질 것 같고 귀찮아서 안 했다.

나중에 문제가 나오면 다시 한번 풀어봐야겠다.

 

4번 문제는 문자열 트라이를 생각했는데 트라이 역시 익숙하지 않아서 그냥 반복문으로 구현 후 최적화하니 효율성 테스트 말고는 통과했다.

역시 나중에 다시 풀어볼 예정이다.

 


결과 & 느낀 점


역시 아직 많이 부족하다.. 파이썬 알고리즘에 있어서는 전문가가 되고 싶었는데 아직 가야할 길이 멀다.

 

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

 

약간 아쉽기도 하고.. 이로써 11월에는 3문제 이상을 풀어내야 한다.

더 열심히 준비해보자!