데이터 엔지니어
프로그래머스 월간 코드 챌린지 1 후기 본문
프로그래머스 사이트에서 주최한 월간 코드 챌린지에 참가하였습니다.
9 / 10 / 11 월 각 한번씩 열리며 각 대회마다 4개의 문제가 주어져 1, 2, 3 등에게는 상금을 수여하고, 세 번의 대회에서 총 5문제 이상 풀 경우 이벤트 상품에 응모할 수 있는 챌린지입니다.
저는 상금 받을 정도의 실력자가 아니기 때문에 알고리즘 실력도 늘리고 이벤트 응모라도 하기 위해 참가하였습니다!
문제와 풀이를 완전히 공유하는 것은 불법이기 때문에 4문제에 대한 제 개인적인 난이도 풀이로 후기를 남기겠습니다
자세한 사항은 아래 링크를 참조해주세요.
문제
프로그래머스 레벨 기준으로 작성해보겠습니다. (level 1 ~ 5)
1번 문제 LEVEL 1 ~ 2
리스트가 주어지고, 그 안에서 두 숫자만 뽑아 만들 수 있는 합들을 출력하는 문제였습니다.
저는 combination 라이브러리와 set을 사용하여 쉽게 풀었던 문제입니다.
따로 설명드릴게 없네요 ㅎ
비슷한 문제: www.acmicpc.net/problem/3273
2번 문제 LEVEL 2 ~ 3
여기부터 조금 까다로워졌습니다. 옛날에 달팽이 출력문제를 풀어본 경험이 있는데 이 문제는 사각형이 아닌 삼각형을 달팽이 형식으로 출력하는 문제였습니다.
삼각형 그리는 코드를 먼저 짜고, 숫자가 어느 인덱스에 들어가야하는지 계산하며 엄청난 하드코딩으로 이 문제를 해결하였습니다.
비슷한 문제: www.acmicpc.net/problem/1913
3번 문제 LEVEL 2 ~ 3
정확히는 기억이 안나는데 풍선이 들어간 리스트가 주어지고 조건에 따라 인접한 풍선을 터뜨려가며 마지막까지 살아남을 수 있는 풍선의 개수를 출력하는 문제 였습니다.
조건은 '옆보다 작을 경우는 터뜨리기는 한번만 가능하다' 이런 식으로 2개정도 주어졌던 걸로 기억합니다.
저는 시간이 부족하여 이 문제를 해결하지 못하였는데, 풀이는 풍선 기준으로 왼쪽에 작은수가 몇개 있는지 오른쪽에 몇개 있는지를 세어서 조건을 검사하는 식으로 생각보다 간단하게 해결할 수 있었던 문제였습니다.
비슷한 문제는 저도 모르겠네요 ㅠ
4번 문제 LEVEL 3 ~ 4
제일 어려웠던 문제입니다.
a라는 0과 1로 이루어진 2차원 배열이 주어지고 a와 맞는 짝꿍 배열 b의 개수를 찾는 문제였습니다.
짝궁 배열이 되기위한 조건이 여러가지 있는데
조건의 예
1. a, b 각 열의 1의 개수가 같아야 한다.
2. b의 각 행의 1의 개수는 짝이여야 한다.
등 5가지 정도의 조건이 있었던 걸로 기억합니다.
저는 열의 개수를 고정시킨채 나올 수 있는 배열을 combination으로 구해서 풀었는데, 역시나 시간초과가 나왔습니다. 정확성 33.3점만 통과하였습니다. ㅠㅠ
끝나고 생각해보니 해당 문제는 N-Queen과 비슷한 문제처럼 보이더라고요. 백트래킹으로 해결하면 되지 않을까 라는 제 추측입니다. 푸신 분 있으면 풀이방법 공유 부탁드립니다.
비슷한 문제: programmers.co.kr/learn/courses/30/lessons/12952
N-queen 풀이: data-engineer.tistory.com/22
1등 분께서는 20분만에 4문제를 다 푸셨네요 ㄷㄷ..... 저는 정확히 푼건 2개밖에 안되는데 조금씩 알고리즘 실력이 늘어가는 게 보입니다! 계속 정진하도록 하겠습니다.
참고로 문제는 9월 16일에 공개된다고 하니 그 때 직접 풀어보시면 좋을 것 같습니다. 감사합니다~
'프로그래밍(Programming) > 알고리즘(Algorithm)' 카테고리의 다른 글
백준 - [Gold 2] 2533번 사회망 서비스(SNS) (2) | 2020.09.16 |
---|---|
백준 - [Gold 5] 1916번 최소 비용 구하기 (0) | 2020.09.14 |
백준 - [Gold 2] 2623번 음악프로그램 (0) | 2020.09.09 |
백준 - [Gold 5] 1759번 암호 만들기 (0) | 2020.09.09 |
백준 - [Gold 4] 1744번 수 묶기 (0) | 2020.09.08 |