백준공부/java
[백준] 1057번 토너먼트 (silver 4
gomduri43
2024. 9. 3. 14:37
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st=new StringTokenizer(br.readLine());
int n=Integer.valueOf(st.nextToken());
int kim=Integer.valueOf(st.nextToken());
int im=Integer.valueOf(st.nextToken());
Queue<Character> que=new LinkedList<>();
for(int i=1; i<=n; i++){
if(i== kim || i==im){
que.offer('X');
}
else{
que.offer('1');
}
}
int answer=-1;
int round=0;
while(answer!=round){
round++;
int many=que.size();
for(int i=1; i<=many/2; i++){
char tmp1=que.poll();
char tmp2=que.poll();
if(tmp1==tmp2 && tmp2=='X'){
answer=round;
break;
}
else if(tmp1=='X'){
que.offer('X');
}
else if(tmp2=='X'){
que.offer('X');
}
else{
que.offer('1');
}
}
if(many%2==1){
que.offer(que.poll());
}
}
System.out.println(answer);
}
}
//브루트포스로 해결. 둘이 만날때 종료, 이외에는 둘은 무조건 승리한다는 조건 충족
//한번에 두명이서 대결이므로, 만약 전체가 홀수였을 경우는 나머지 한명을 따로 부전승으로 올림