날짜: 2022년 5월 18일 오후 10:09
코드
Algorithm/92342.py at main · Junroot/Algorithm
풀이
두 가지 문제로 나눠서 생각할 수 있다.
- 어피치와 라이언의 점수 차이 계산하기
- 점수차이를 최대로 나도록 라이언이 쏘는 방법 구하기
어피치와 라이언 점수 차이를 계산하기 위해서 어피치가 점수를 얻은 영역에 더 많이 맞추면 점수를 2배로 얻는 것으로 구현을 했다. 어피치가 점수를 잃고 라이언이 점수를 얻는 것이 결국 라이언이 점수를 2배로 얻는 것과 같기 때문이다.
점수차이를 최대로 나는 경우를 찾기 위해서 dfs를 이용해서 모든 경우를 탐색하도록 구현했다.
현재 위치에서 점수를 포기하는 경우와 어피치보다 하나 더 맞추는 경우를 계산하고 더 많은 점수를 얻는 경우를 사용하도록 구현하면된다. 이 때, 점수차가 같은 경우는 더 낮은 점수에 더 많이 쏜 경우를 사용하도록 하는 부분에서 실수가 조금 있었다.