양궁대회

유승선 ·2022년 1월 23일
0

프로그래머스

목록 보기
8/48

2022년 카카오 블라인드 시험이 프로그래머스에 올라왔었다. 사실 최근에 벨로그 포스팅이 없었던 이유도 이 문제때문이다. 요즘 군대일이 부쩍이나 바빠졌고 군대안에서 평가 받는날도 많아져서 그냥 숨만 쉬다보니 왕고가 된 나도 책임감 때문에 바빴지만 더 열심히 못한 내 잘못도있었다. 포스팅 하지는 못했지만 프로그래머스에 올라왔던 2022년 카카오 블라인드 문제 처음 봤을때 너무 설레면서 풀었고 실제로 1~3번까지 문자열 파싱 + 맵 사용등의 문제였어서 술술 풀어낸후에 자신감이 넘친채로 4번 문제인 양궁대회를 풀기 시작했는데 일단 문제에서 1차 멘붕이 왔고 접근법에서 2차 3차 멘붕이 온채 이건 못풀겠다 하고 절망했다.

양궁대회 문제는 문제 자체도 엄청 나게 긴것도 사실이지만 특정 조건? 들이 많이 거슬리게 짜증난다. 카카오 문제들이 이런 특징이 있는거같은데 그냥 상식적인 조건에서 끝나는게 아니고 되게 창의적이게 문제를 내는거같다 (솔직히 푸는 입장에서는 아오...) 이번 2022카카오 블라인드는 4.5솔이 1차 통과기준이라 했는데 나였으면 3솔에서 아마 이문제로 막혀서 통과못했을것이다. 내가 1차도 통과를 못하는 수준인가에 너무 화가 났었고 그대로 폐관 수련으로 LeetCode 동굴에 들어가서 관련 문제와 유사한 문제들만 풀었고 성장해서 나왔다.

문제 설명도 쉽지는 않지만. n이라는 주어진 화살이 있다면 info는 어피치의 점수상태고 내가 점수를 얻기위해선 어피치보다 더 많은 화살을 맞춰야만 점수를 얻을수있다. 그렇게 해서 가장 높은 점수차이가 나오는 점수대를 만들어야하고 가장 큰 점수차가 여러가지일 경우 더 낮은 점수를 많이 맞춘 결과가 답이 된다.

코드는 성공적으로 다 썼지만 2가지 테스트케이스가 실패했던 내 1차 코드를 공개한다





분명히 완벽하게 코드를 짰다 생각했고 틀릴게 없다생각했는데 아니 8번하고 18번 테스트케이스가 뭔 짓을 해도 틀리기에 내 백트레킹이 틀렸나 하고 한참 고민했지만 틀린것도 아니였다.

나중에 더 작성하긴 해야겠지만 결국 고친 두 부분은 이렇다.

그렇다...else 가 아닌 else if 를 썼다. 결국 내 백트래킹에는 문제가 없었지만 결국 문제였던건 내가 점수 계산을 하고 낮은 점수를 우선으로 정답으로 만들어야했던 과정...너무 어이없었어서 풀고도 기쁨을 많이 누리지는 못했다.

배운점:
1. else 는...조심히 쓰자 ... 무조건 else if...

profile
성장하는 사람

2개의 댓글

comment-user-thumbnail
2022년 5월 2일

저도 똑같이 풀었는데
문제점 공유해드립니다.

2, [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1] 넣으면
10부터 탐색하게 되면 [1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0] 이게 먼저 나오고
뒤에 [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0] 이게 나와서 틀리더라구요

반례는 n이 2부터 8개씩 있네요
n = 2
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1][0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0]
[0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0][0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0]
[0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0][0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0][0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0]
n = 3
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1][0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0]
[0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0][0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0]
[0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0][0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0]
[0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0]
...

1개의 답글