맞는데 왜 틀릴까..?

알고리즘 문제/자료구조

[Java] Queue (카드 2)

안도일 2023. 2. 12. 16:34

https://www.acmicpc.net/problem/2164

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

 

 

아주 기본적인 선입선출 queue 문제. 학부 자료구조 수업을 열심히 들어 놓길 잘했다. 자바로 구현하는 queue 사용법을 익혀두자.

 

삽입

  • add(e) : 삽입 성공 시 true 반환, 하지만 사용 가능한 공간이 없어 삽입 실패 시 IllegalStateException 발생
  • offer(e) : 삽입 성공 시 true 반환, 하지만 사용 가능한 공간이 없어 삽입 실패 시 false 반환

 

제거

  • remove() : 헤드 요소를 조회(출력 가능)하고 제거, 하지만 큐가 비어 있다면 예외 발생
  • poll() : 헤드 요소를 조회(출력 가능)하고 제거, 하지만 큐가 비어 있다면 null 반환

 

확인

  • element() : 헤드 요소 조회 및 반환, 하지만 큐가 비어 있다면 예외 발생
  • peek() : 헤드 요소 조회 및 반환, 하지만 큐가 비어 있다면 null 반환

 

 

 

 

public class Main {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        
        Queue<Integer> queue = new LinkedList<>();

        int N = Integer.parseInt(br.readLine());

        for(int i=1; i<N+1; i++){
            queue.add(i);
        }

        for(int i=0; i<N-1; i++){
            queue.poll();
            queue.add(queue.poll());
        }

        System.out.println(queue.peek());
    }
}

 

'알고리즘 문제 > 자료구조' 카테고리의 다른 글

[Java] 정렬 (KCPC)  (0) 2023.02.12