View
![](https://blog.kakaocdn.net/dn/cUuKBa/btq6pWLNeXX/CSAovF4Xl4jzky9eQiMUi1/img.png)
😃 || 정리
부전승이 따로 있지 않고 ,
참가자가 2의 제곱으로 주어지기 때문에 한 번 라운드가 끝날 때 마다
참가자가 이전라운드 참가자의 2분의 1로 줄어드는 것을 확인할 수 있었다.
처음에는 b와 a의 차이가 1일 때로 생각해서 풀었더니
정확도가 88점... 왜 일까 알고보니
a가 4, b가 5로 주어질 경우는 차이가 1이므로 내가 만든 풀이에선 라운드가 한번밖에 진행되지 않지만
사실은 라운드가 3번은 진행되어야 하는 것이었다.
그래서 a와 b가 같아지지 않을 때 까지로 조건을 변경해서 풀었더니 해결!
😃 || 풀이 방법
class Solution
{
public int solution(int n, int a, int b)
{
int roundCnt = 0;
while(a != b){
roundCnt ++;
a = nextCnt(a);
b = nextCnt(b);
}
return roundCnt;
}
public int nextCnt (int turn) {
return turn/2 + turn%2;
}
}
'Algorithm' 카테고리의 다른 글
프로그래머스 :: 오픈채팅방 (Java) 알고리즘 풀이 (0) | 2022.03.12 |
---|---|
프로그래머스 :: 영어 끝말잇기 (Java) 알고리즘 풀이 (0) | 2021.05.17 |
LeetCode :: Valid Anagram (Java) (0) | 2021.04.30 |
프로그래머스 :: 같은 숫자는 싫어 (Java) 알고리즘 풀이 (0) | 2021.04.26 |
프로그래머스 :: 이상한 문자 만들기 (Java) 알고리즘 /split (String regex, int limit) 정리 (0) | 2021.04.24 |
reply