[BAEKJOON] - 2164번 : 카드2

Kim Hyen Su·2024년 1월 19일
0

⏲️ 알고리즘

목록 보기
45/95

2164번 문제 링크

위 문제는 큐(Queue) 자료구조만 이해하고 있다면 쉽게 해결할 수 있었던 문제였습니다. 1이 가장 위에 있다는 것은 카드를 뽑을 때, 가장 먼저 뽑혀야 하기 때문에 큐 자료 구조를 적용하는 것이 맞습니다.

가장 위의 수를 빼내고(poll) 그 다음 수를 가장 밑에 두도록 하여 마지막에 남은 하나의 수를 출력하라는 문제였습니다.

두번째 카드는 가장 밑에 넣어주면(add) 되기 때문에 크게 어려운 로직이 없었습니다.

😀성공

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Queue;
import java.util.LinkedList;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        br.close();
        
        Queue<Integer> queue = new LinkedList<>();
        
        for(int i = 1; i <= N; i++){
            queue.add(i);
        }
        
        while(queue.size() > 1){
            queue.poll();
            queue.add(queue.poll());
        }
        
        System.out.println(queue.poll());
    }
}
profile
백엔드 서버 엔지니어

0개의 댓글