프로그래머스에서 월간 코드 챌린지 시즌2를 4월, 5월에 걸쳐 진행한다길래
접수해서 응시한 챌린지이다!
4월 4문제, 5월 4문제가 출제되고, 두 번의 대회 중 4문제 이상 맞출 경우에
경품 이벤트 응모가 가능하대서 한번 재미삼아 응시한 챌린지이다.
다른 시즌(시즌3 9월) 후기는 아래 포스팅에서~
https://kth990303.tistory.com/m/132
5월 후기는 아래 포스팅에서 볼 수 있습니다!
https://kth990303.tistory.com/52
이번 4월 챌린지에는 약 5,300명이 응시를 하였고,
이 중, 200점 이상 받은 사람은 1,660명 이었다. (궁금해서 일일이 스코어보드로 확인해봄...ㅋㅋㅋㅋㅋㅋㅋㅋ)
두 번의 대회 중 4문제 이상 맞춰야 응모가 가능하므로
나는 한 대회 당 2문제 이상 solved를 목표로 하였고,
실제로 238.9점으로 2문제를 solved하였다.
굉장히 놀랐던 점은, 대회 중간에 '순위 보기'라는 탭으로 실시간으로 내 순위를 볼 수 있고,
테스트케이스마다 부분점수로 등수가 갈린다.
만약 여러 번 같은 점수의 코드를 제출했다면, 가장 빨리 제출한 코드의 점수를 인정받는다.
동점자의 경우, 제출 시각으로 순위가 매겨진다.
525등이라니.. 상위 10퍼에 든게 만족스럽긴 하나,
개인적으로 3번 문제를 만점받지 못한 점이 너무 아쉽다.
16일에 프로그래머스에서 풀이를 발표했는데,
알고리즘 자체는 풀이와 같아 무언가 반례를 놓친 게 있지 않을까 예상된다.
(아, 리프노드 뿐만 아니라 루트에서도 시작하게 했는데 그 부분을 잘못한 것 같다)
점수로만 보면 그렇게 좋은 결과는 아니지만,
열심히 응시한 챌린지이니 블로그에 후기를 포스팅하려 한다.
개인적으로 문제도 좋아 만족스럽기도 하고 말이다.
+ 응시 후, tree+dfs 문제를 많이 연습해야겠다는 생각도 많이 했다.
문제 및 해설 링크
아래 링크에서 문제와 해설을 볼 수 있다.
시간날 때 한 번 다시 도전해보자.
programmers.co.kr/learn/challenges?tab=all_challenges
문제 이름 | 프로그래머스 레벨 | Solved.ac 예상티어 (개인 주관 포함) |
사용 알고리즘 | 정해 알고리즘 |
음양 더하기 | 1 | Bronze III | 수학, 구현 | 수학, 구현 |
괄호 회전하기 | 2 | Silver III | 구현, 큐 | 구현, 스택 |
모두 0으로 만들기 | 3 | Gold II | DFS, 그리디 | DFS, 그리디 |
RPG와 쿼리 | 5 | ? | - | BFS |
문제 후기
프로그래머스는 함수형으로 답안을 제출해야돼서 개인적으로 좋아하지 않는다.
특히 vector<vector<int>> 꼴로 인자가 주어지는데, 이 형태를 개인적으로 극혐...한다.
1. 음양 더하기 (Level 1)
그냥 sign이 false이면 값=-값 형태로 바꾼 후,
모두 더해주면 되는 굉장히 쉬운 문제였다.
확실히 맨 처음 문제라 굉장히 쉬웠고,
응시하자마자 10초 이내로 푼 사람이 등장한 것으로 기억한다.
난 프로그래머스 형태를 너무 오랜만에 봐서 3분 정도 걸렸던 듯 하다.
2. 괄호 회전하기 (Level 2)
이것 또한 문자열의 길이가 최대 1,000이라 그냥 구현하면 된다.
기억상 시간복잡도가 O(N^2)이기 때문에 그냥 구현해도 크게 문제 없다.
다만 vector<vector<int>> 꼴로 인자가 주어져,
그냥 나한테 편한 vector<int> v[MAX] 꼴로 바꾸고,
중간에 뻘짓한게 있어 엄청나게 시간을 잡아먹었다. (나중에 보니 그렇게 잡아먹은 것도 아니었지만)
여기까진 그냥 무난무난했고, 4문제 중 2문제는 역시나 이벤트 응모를 위한 인원들을 위해 쉽게쉽게 내주는구나 싶었다.
실제로 200점 이상은 무려 1700명이나 된다.
3. 모두 0으로 만들기 (Level 3)
이 문제... 일단 합이 0이 아니면 무조건 불가능한 케이스이므로,
예외 케이스로 -1을 리턴해주는 경우를 제일 먼저 만들었다.
이후 dfs라는 것만 캐치하고 어떻게 할까 곰곰이 생각해봤는데,
어차피 dfs의 시간복잡도가 O(N)이어서,
그리고 그냥 단순히 끝에서부터 자기 자신을 0으로 만들고 남에게 자기 자신의 가중치를 주면 되지 않을까 싶어 진행했는데 33.3점, 그리고 이후 자꾸 38.9점 정도만 인정돼 짜증나서 조금 더 고민해보다가 포기하였다.
내가 나만의 트리+dfs 문제의 테크닉 및 노하우를 확실하게 만들어놓지 않은 것도 한몫한 것 같다.
이 문제부터 정답자 수가 급격하게 떨어지기 시작한다.
아마 이 문제 만점자는 300여명 정도였던 것으로 기억한다.
4. RPG와 쿼리 (Level 5)
아마 대회 내에서 푼 사람이 11명 정도였던 것으로 기억한다.
그 정도로 어려운 문제...
테스트케이스랑 몇몇 예외 케이스만 맞춰지게 제출해봤는데, 당연히 4점도 얻지 못했다ㅋㅋㅋ
다음에 실력을 키우고 다시 도전해봐야겠다.
어차피 5월 대회도 있고,
그리고 지금 군인이기도 하고,
앞으로 3~4년 간 취업을(가능하다면 대회까지) 위해 열심히 알고리즘 계속 준비할거니까
아쉽다면 아쉽지만, 전혀 낙담은 되지 않는다.
열심히 더 연습해야겠다는 생각이 많이 든다. 알고리즘 의욕이 팍팍 생겼다.
이제 dfs, graph 쪽 재밌는 문제들 풀러 가봐야겠다 ㅎㅎ
'PS > My Diary (PS, 대회후기)' 카테고리의 다른 글
[UCPC 2021] UCPC 팀원 모집 및 예선 난이도 브리핑 완료 (0) | 2021.04.25 |
---|---|
Ucpc 2020 문제를 맛보았다 (21.04.20 기준) (0) | 2021.04.20 |
백준 1000 Solved 달성! 21.04.08. (4) | 2021.04.08 |
[210327] SCOFE 스코페 2021 2차대회 후기 (0) | 2021.03.27 |
[210320] SCOFE 스코페 2021 1차대회 후기 (0) | 2021.03.20 |