코딩테스트/백준
[백준-자바] 2164번 카드2 / 2022.07.16
강원대목동녀
2022. 7. 16. 17:15
https://www.acmicpc.net/problem/2164
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));
//StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
Queue<Integer> queue = new LinkedList<>();
for(int i=1; i<=N; i++){
queue.offer(i);
}
// 1. 그냥 버리기 2. 맨 앞 숫자를 맨 뒤에 넣기
// 위 두가지를 반복하기 위한 index 변수
int index = 0;
while(queue.size()!=1){
index++;
// index가 홀수라면 1번
if(index%2==1){
queue.poll(); continue;
}
// 아니라면 2번
queue.offer(queue.poll());
}
// 마지막 남은 숫자를 출력
System.out.println(queue.poll());
}
}