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());
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준-자바] 2566번 최댓값 / 2022.10.30 (0) | 2022.10.30 |
---|---|
[백준-자바] 1068번 트리 / 2022.10.18 (0) | 2022.10.18 |
[백준-자바] 11866번 요세푸스 문제 0 / 2022.07.16 (0) | 2022.07.16 |
[백준-자바] 10546번 배부른 마라토너 / 2022.07.04 (0) | 2022.07.04 |
[백준-자바] 7795번 먹을 것인가 먹힐 것인가 / 2022.06.04 (0) | 2022.06.04 |