• Home

My Codegate

  • Home

백준 2161 카드1 자바 문제풀이

2023/12/14 Posted by Codegate Java No Comments
백준 2161 카드1 자바 문제풀이

문제 링크

문제 내용을 요약해보자면 입력 값을 받으면 1 부터 입력 값까지 나열한 후, (1이 맨 앞, 입력 값이 맨 뒤) 앞에서부터 카드를 뽑기 시작하되 처음에는 그냥 뽑고, 그 다음에는 뽑아서 맨 뒤로 보내고, 이후에는 그냥 뽑는 것을 반복해서 뽑힌 카드의 값들을 반납하는 식인데

입력 값으로 4를 받았으면 1,2,3,4 이런 수를 가지게 되는 것이고, 1뽑고 2뒤로 넘겨서 3,4,2 만들고 3 뽑고, 4 넘겨서 … 출력은 1, 3, 2, 4를 출력해주면 된다는 거다

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

public class Main {

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

    Queue<Integer> queue = new ArrayDeque<>();
    for (int i = 1; i <= count; i++) {
      queue.add(i);
    }

    int[] arr = new int[queue.size()];
    boolean status = true;
    int i = 0;
    while (queue.size() > 0) {
      if (status) {
        arr[i] = queue.poll();
        status = false;
        i++;
      } else {
        queue.add(queue.poll());
        status = true;
      }
    }

    String ans = "";
    for (int j = 0; j < arr.length; j++) {
      if (j == arr.length - 1) {
        ans += arr[j];
      } else {
        ans += arr[j] + " ";
      }
    }

    System.out.println(ans);

  }

}

문제를 풀어보자면 Queue에다가 값을 넣어주면 순서대로 저장이 되고, 이후 Queue가 빌때까지 반복문을 돌리면서, 처음 수는 뽑아 배열에 저장하고 다음 수는 뒤로 넘기고.. 이런 식으로 배열을 채운 뒤, 배열을 String 출력 구조로 변환해서 반환해주면 끝이다.

주의할 점은 출력 시 마지막 값에 띄어쓰기가 들어가면 안된다는 것을 유의하자.

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next