문제
1057번: 토너먼트
김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를
www.acmicpc.net
알고리즘
없음
풀이
N의 값과 상관 없이
두 사람은 승부 후에 (i+1)/2 번호를 배정받게 된다.
따라서 승부 후에 두 사람의 번호가 같아지면 두 사람이 만나서 승부를 한 것이 된다.
예제 입력 3을 예로 들면
1000 20 31
김지민 : 20 -> 10 -> 5 -> 3 -> 2
임한수 : 31 -> 16 -> 8 -> 4 -> 2
두 사람은 4번의 승부 후에 2로 번호가 같아졌음을 알 수 있다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st= new StringTokenizer(br.readLine()," ");
int N = Integer.parseInt(st.nextToken());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int count = 0;
while(A != B) {
A = (A+1)/2;
B = (B+1)/2;
count ++;
}
System.out.println(count);
}
}
'Algorithm > 백준(BOJ)' 카테고리의 다른 글
[백준] 1912. 연속합 (Java) (0) | 2022.09.29 |
---|---|
[백준] 2004. 조합 0의 개수 (Java) (0) | 2022.09.29 |
[백준] 17825. 주사위 윷놀이 (Java) (0) | 2022.09.27 |
[백준] 17822. 원판 돌리기 (Java) (0) | 2022.09.27 |
[백준] 1735. 분수 합 (Java) (0) | 2022.09.24 |