백준 1057: 토너먼트(Java)
문제링크 : https://www.acmicpc.net/problem/1057
문제
문제를 해결한 방법
간단한 수학문제였습니다. N번호의 참가자는 경기에서 이겼을 때 다음 라운드 번호는 (N+1)/2
가 됩니다.
김지민과 임한수의 다음 라운드 번호가 동일하다면 둘이 같이 경기를 했다는 의미이기 때문에 그때 count의 값을 출력하면 됩니다.
소스 코드
package baek;
import java.io.*;
import java.util.*;
public class Main_1057_토너먼트 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int KIM = Integer.parseInt(st.nextToken());
int LIM = Integer.parseInt(st.nextToken());
int count = 0;
while(count < (N+1)/2) {
count++;
KIM = (KIM+1)/2;
LIM = (LIM+1)/2;
if(KIM == LIM) {
System.out.println(count);
return;
}
}
return -1;
}
}
Comments