https://school.programmers.co.kr/learn/courses/30/lessons/92342
내가 푼 방식
STEP1 . 10점부터 0점까지 라이언은 이길건지/ 질건지 모든순열의 조합을 구해야 한다.
- 이길 경우: 어피치점수+1
- 질 경우: 0 점
(조건은, 양궁의 갯수를 확인하면서 점수를 메겨야 한다.)
-> 우선 이부분은 DFS 로 푸는 방식이다.
STEP2.
모든 경의 수를 다 구했다면, 어피치와 라이언의 점수차이를 구한다.
- 어피치와 라이언의 점수가 같다면 어피치가 이긴다.
- 만약 점수차이가 같다면, 낮은점수가 많은 경우의 값을 답으로 리턴한다.
(여기서 자잘한 조건들이 많아서 따져줘야할 것들이 많았음..)
- 라이언이 모든 양궁을 쏘지 못한채로 끝난경우라면, 양궁의 갯수를 마지막 인덱스에 채워넣어줘야했고.. 근데 여기서도 쫌 막혔음 ( tmp값으로 넣어줬다가 다시 원복해줘야한다.)
- 점수 비교하는 부분에서, 라이언과 어피치가 둘다 0 이 아닌경우일때만 점수계산이 가능하다는 점
등등..
푸는 시간 거의 2시간 걸렸던것 같다 ㅠ.ㅠ
그리고 테스트케이스 23 에서 막혔었는데, 만약 라이언과 어피치의 점수가 같다면 -> 어피치의 승리다
즉 맨처음 초기화 부분에서 answer= -1 로 했는데,
answer=0 인 경우에도 answer= -1 과 동일하다는 것이다.
제출한 풀이.
레벨2는 풀수는 있어도. 아직 많이 부족한 것 같다.
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 오픈채팅방(level.2) / Java, HashMap (0) | 2022.08.20 |
---|---|
[프로그래머스] 메뉴 리뉴얼(level.2) / JAVA, HashMap (0) | 2022.07.23 |
아이템18. 상속보다는 컴포지션을 사용하라 (0) | 2022.06.24 |
아이템17. 변경 가능성을 최소화하라 (0) | 2022.06.24 |
아이템16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 (0) | 2022.06.24 |