https://programmers.co.kr/learn/courses/30/lessons/12985?language=java
[풀이]
1번, 2번, 3번, 4번의 사람이 있다면 한차례 토너먼트 경기를 치른 후에는 1번, 2번을 새로운 번호로 할당받는다. 만약 1,2,3,4,5,6,7,8번이 있다면 한차례 후에는 1,2,3,4라는 새로운 번호를 할당 받게 되며 또 한차례 경기를 치른다면 1,2 라는 새로운 번호를 받게 된다.
그렇게 되면 두 번호가 같아질때까지 계속 새로운 번호를 할당받는 과정을 코드로 구현하면 된다. 테스트 케이스의 4번과 같은 경우 이후, (4+1) / 2 -> 2 -> 즉 새로 2번을 할당 받게 된다.
[코드]
class Solution
{
public int solution(int n, int a, int b) {
int answer = 0;
while (a != b) {
a = (a + 1) / 2;
b = (b + 1) / 2;
answer++;
}
return answer;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 게임 맵 최단거리(Java) (0) | 2021.07.08 |
---|---|
프로그래머스 : 짝지어 제거하기(Java) (0) | 2021.07.07 |
프로그래머스 : 같은 숫자는 싫어 (0) | 2021.03.28 |
프로그래머스 : 모의고사(Python) (0) | 2021.03.07 |
프로그래머스 : 3진법 뒤집기(Python) (0) | 2021.03.06 |