import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
static Queue<Integer> queue = new LinkedList<>();
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
for(int i = 1; i <= N; i++) {
enqueue(i);
}
while (queue.size() > 1) {
queue.poll();
queue.add(queue.poll());
}
System.out.println(queue.poll());
scanner.close();
}
public static int poll() {
return queue.poll();
}
public static void enqueue(int temp) {
queue.add(temp);
}
}
큐를 이용해서 구현할 수 있다.
poll()는 큐의 값을 선택해서 제거 후 그 값을 가지고 있는다.
enqueue()는 값을 맨 뒤에 추가한다.
맨 첫 번째 값, 그리고 홀수 번 째 값들은 버린다.
두 번째 값, 그리고 짝수 번 째 값들은 선택해서 제거 후 값을 맨 뒤에 추가한다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준_JAVA_알고리즘] 11478 서로 다른 부분 문자열의 개수 (2) | 2024.06.22 |
---|---|
[백준_JAVA_알고리즘] 17219 비밀번호 찾기 (1) | 2024.06.05 |
[백준_JAVA_알고리즘] 10773 제로 (0) | 2024.06.03 |
[백준_JAVA_알고리즘] 13241 최소공배수 (0) | 2024.02.12 |
[백준_JAVA_알고리즘] 1934 최소공배수 (1) | 2024.02.12 |