알고리즘/코드트리 문제풀이

코드트리 [java 자바] 수열조작

잔디🌿 2025. 2. 23. 16:35

https://www.codetree.ai/trails/complete/curated-cards/challenge-sequence-manipulation/description?page=1&page_size=20

 

Code Tree | Learning to Code with Confidence

A super-comprehensive, meticulously arranged Coding Learning Curriculum engineered by Algorithm Experts composed of former International Olympiad in Informatics (IOI) medalists.

www.codetree.ai

 

문제설명

이 문제는 덱을 연습하기 위해서 푼 문제이다.

처음에 Last를 Back라고 써서 에러날 뻔 했다;;

 

1부터 n까지의 수가 덱 안에 있고, 맨 앞에 있는 수는 제거를 한 뒤 그 다음에 있는 수는 맨 마지막에 넣으면 되는 문제이다.

 

덱 개념만 잘 알면 풀만한 문제이다!

 

코드

import java.io.*;
import java.util.*;
import java.math.*;


public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int a = Integer.parseInt(br.readLine());

        Deque<Integer> dq = new ArrayDeque<>();

        for(int i = 1;i<=a;i++){
            dq.addLast(i);
        }

        while(dq.size() != 1){
            dq.pollFirst();
            int k = dq.pollFirst();
            dq.addLast(k);
        }

        System.out.println(dq.pollLast());

    }
}