본문 바로가기

코딩테스트

[프로그래머스(Programmers)/Level2](Python) 숫자 야구

<내 코드>

 

 

 

<문제 풀이>

숫자3개로 만들수 있는 전체순열을 Permutation으로 만들고 하나씩 주어진 숫자들+스트라이크횟수+볼횟수

와 비교하며 다르면 전체 순열에서 제거하는 식으로 문제를 풀었다. 위의 코드는 비교해서 strike와 ball횟수가

같으면 True를, 다르면 False를 리턴하는 check함수의 코드와 main함수에서 그 결과를 바탕으로 False는 제거한다.

전역탐색으로 쭉 반복하면 결국 리스트에는 조건과 맞는 수 들만 남게 된다.

 

<느낀점>

for문을 돌면서 리스트의 길이가 점점 줄어들때, all_numlst[:]이런식으로 :가 없으면 에러가 난다는 사실을 깨달았고,

이 문제를 어떻게 코딩할지 정말 막막해서 이게 정답일까? 하고 풀었더니 맞았다. 때로는 무식한방법이 적용될 때도 있다는 사실을 깨달았다. 추가로 구글링 해보니까 거의다 나처럼 푼 것 같다.