백준 1057: 토너먼트(Java)

less than 1 minute read

문제링크 : https://www.acmicpc.net/problem/1057

문제

img1

img2

문제를 해결한 방법

간단한 수학문제였습니다. 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;
	}
}

Categories:

Updated:

Comments