[백준]2164번 카드2

김윤지·2022년 10월 4일
0

JAVA

목록 보기
7/10

문제 해석

내 코드

내가 생각한 풀이 방법
while문을 사용해서 카드가 1장 남을 때 까지
remove()를 사용해서 카드의 맨 앞 장을 삭제하고,
삭제한 myQueue에서 remove()로 맨 앞의 카드를 삭제&반환 한 것을 add() 함수를 통해 맨 뒤(아래)로 숫자를 삽입한다!

add, remove 설명 참고

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Practice12 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		// Queue 생성
		Queue<Integer> myQueue = new LinkedList<>();
		
		int N = sc.nextInt();
		
		// 카드를 큐에 저장
		for(int i = 1; i <= N; i++) {
			myQueue.add(i);
		}
		
		// 카드가 1장 남을때 까지
		while (myQueue.size() > 1) {
			myQueue.remove();
			myQueue.add(myQueue.remove()); // 맨 위의 카드를 가장 아래로 이동
		}
		System.out.println(myQueue.remove());
        sc.close();
	}
}
profile
Java, Javascript, python, DB

0개의 댓글