<문제 2161 - 카드1>
[문제]
[답안]
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
Queue<Integer> queue = new LinkedList<>(); // queue 선언
StringBuilder sb = new StringBuilder();
int last = -1; // 가장 앞에 있는 데이터를 뒤로 넣을때 쓸 변수
int n = sc.nextInt(); // 카드의 개수
for (int i = 1; i <= n; i++) {
queue.add(i); // 개수만큼 돌면서 queue에 번호 저장
}
for (int i = 1; i < n ; i++) { // n만큼 돌면서
sb.append(queue.peek()+" "); // 가장 앞에 있는 데이터부터 저장(바닥에 버려질 카드)
queue.poll();// poll을 이용하여 가장 앞의 데이터를 제거
last = queue.peek(); // 가장앞에 있는데이터를 last에 넣고
queue.poll(); // 앞에 있는 데이터를
queue.add(last); // 뒤에 다시 추가
}
sb.append(queue.peek()); // 한개만 남았으니까 peek을 이용해서 마지막 카드 번호 더하기
System.out.println(sb);
}
}
// 그림 그려서 풀면 더 쉽다! <큐 이용 문제>
'알고리즘 풀이(JAVA) > 백준' 카테고리의 다른 글
[백준] 문제번호 3986 (좋은 단어)(java) (0) | 2022.10.11 |
---|---|
[백준] 문제번호 1463 (가장 긴 증가하는 부분 수열)(java) (0) | 2022.10.07 |
[백준] 문제번호 10845 (큐)(java) (0) | 2022.10.04 |
[백준] 문제번호 1463 (1로 만들기)(java) (0) | 2022.09.27 |
[백준] 문제번호 4949 (균형잡힌 세상)(java) (1) | 2022.09.26 |