반응형
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
문제
N장의 카드 (1부터 N)이 있을 때, 다음의 규칙에 따라 카드를 제거해서 남은 1장을 출력한다.
- 가장 아래 (초기값으로 가장 작은 수)를 삭제한다.
- 가장 아래값을 가장 위로 이동시킨다.
- 한 장이 남을 때 까지 반복한다.
풀이
문제에 나온 순서대로 규칙을 적용하였다.
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Queue<Integer> queue = new LinkedList<>();
for(int i=1; i<N+1; i++){
queue.add(i);
}
while(queue.size() != 1){
queue.poll();
queue.add(queue.poll());
}
System.out.println(queue.poll());
}
}
결과
반응형
'백준' 카테고리의 다른 글
[JAVA] 백준 17298 큐 (0) | 2024.01.19 |
---|---|
[JAVA] 백준 11286 우선순위 큐 (0) | 2024.01.19 |
[JAVA] 백준 1874 스택 (0) | 2024.01.19 |
[JAVA] 백준 2015 누적 합 (1) | 2024.01.19 |
[JAVA] 백준 2167 누적합 (0) | 2024.01.19 |