BOJ_2161

Lee Do Kyung·2024년 10월 7일

Boj

목록 보기
9/12

알고리즘:

  • 구현
  • 자료 구조

풀이:

문제는 간단하다 입력으로 정수가 주어진다. 7이라고 치면 1 2 3 4 5 6 7 이된다. 이를 아래 그림처럼 풀이하면 되는데 Deque(덱)을 사용해서 풀이를 하였다. Deque deque1 = new ArrayDeque<>(); 를 사용해서 Deque를 선언하고 for (int i = 1; i <= N; i++) { deque1.add(i); } 를 통해서 1~N까지의 수로 초기화 시켜준다. 이후 deque1.poll()를 해서 맨 앞의 수를 빼서 deque로 추가해주고 deque1.add를 통해서 다음 수를 뒤로 추가해준다. 이후 마지막남은 6을 추가해서 출력해주면 된다.

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;

public class BOJ_2161 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        Deque<Integer> deque1 = new ArrayDeque<>();

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

        while (deque1.size() != 1) {
            System.out.print(deque1.poll().toString() + " ");
            deque1.add(deque1.poll());
        }
        System.out.print(deque1.poll());
    }
}

문제 출처:

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

깃허브 링크:

https://github.com/dbzoseh2rl

profile
유능한 Backend 개발자가 되기위해 열심히 하겠습니다!

0개의 댓글