알고리즘 - Java
[Programmers] 예상 대진표 - Java
LuxuryCoding
2022. 3. 31. 20:44
728x90
코딩테스트 연습 - 예상 대진표
△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N
programmers.co.kr

풀이
1. 항상 이기닌깐 a와 b로만 순위를 구해주면댐
2. 그림처럼 4와 7이 맞붙기 위한 순위 이동 공식을 만들어줘야함
3. 첫숫자 a 두번째 숫자 b 라고 가정했을때
a = a/2 + a%2 ex) 4는 4 -> 2 -> 1 순위를 가짐
b = b/2 + b%2 ex) 7은 7 -> 4 -> 2 -> 1
package programmers.level2;
import org.junit.Test;
public class P12985 {
@Test
public void 정답() {
System.out.println(solution(8, 4, 7));
}
public int solution(int n, int a, int b) {
int answer = 0;
while (true) {
a = a / 2 + a % 2;
b = b / 2 + b % 2;
answer++;
if (a == b) break;
}
return answer;
}
}