[Python/프로그래머스] 2022 양궁대회
*풀이참고 링크에 들어가서 보시면 됩니다.
라이언은 어피치를 가장 큰 점수 차이로 이기기 위해서 n발의 화살을 어떤 과녁 점수에 맞혀야 하는지를 구하면된다.
라이언이 쏘는 모든 경우의 수를 이용해 어피치를 이길 수 있는지를 체크한다. from itertools import combinations_with_replace 이용
구현 solution
1 | |
DFS 풀이
전체순회를 하는 위 풀이보다 DFS로 일부의 경우만 탐색하는 것이 더 효율적이다. (과녁의 수가 10개 밖에 안되어서 시간초과없이 풀이가 가능하다.)
각 점수의 과녁에 대해 라이언은 어피치보다 하나 더 맞추거나 아예 안맞추거나 둘 중 하나를 선택 해야한다.
1 | |