[백준/Java] 10974 - 모든 수열

2025. 9. 9. 09:26·코딩테스트/백준

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

문제


풀이

순열을 출력하는 기본 문제이다

check 배열을 선언해서 해당 수를 사용했는지 판단하면서 재귀호출 한다

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {

    static int N;
    static int[] arr;   // 출력할 배열
    static boolean[] check; // 사용 여부 판단
    static StringBuilder sb = new StringBuilder();

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        N = Integer.parseInt(br.readLine());
        arr = new int[N + 1];
        check = new boolean[N + 1];

        permu(0);

        System.out.println(sb);

        br.close();
    }

    private static void permu(int idx) {
        // 배열의 사이즈가 N과 같아지면
        if (idx == N) {
            // 배열을 출력한다
            for (int i = 0; i < N; i++) {
                sb.append(arr[i]).append(" ");
            }
            sb.append("\n");
            // 이전 idx로 돌아간다
            return;
        }

        // 1~N 수를 사용
        for (int i = 1; i <= N; i++) {
            // 사용한 숫자라면 continue
            if (check[i]) {
                continue;
            }
            // i를 사용처리 함
            check[i] = true;
            // 배열에 i를 담아줌
            arr[idx] = i;
            // 배열의 다음 위치를 재귀 호출
            permu(idx + 1);
            // 모든 경우의 수를 돌았다면 i를 다시 false로 처리
            check[i] = false;
        }
    }

}

결과

'코딩테스트/백준' 카테고리의 다른 글
  • [백준/Java] 15650 - N과 M (2)
  • [백준/Java] 30804 - 과일 탕후루
  • [백준/Java] 15649 - N과 M (1)
  • [백준/Java] 1914 - 하노이 탑
KDH.dev
KDH.dev
  • KDH.dev
    CodingHard
    KDH.dev
  • 전체
    오늘
    어제
    • 전체글 (82)
      • 코딩테스트 (74)
        • 프로그래머스 (13)
        • 백준 (61)
      • CS (4)
        • 네트워크 (4)
      • Spring (1)
      • Java (3)
        • 자료구조 (3)
        • 알고리즘 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크
    프로그래머스 Lv.0
    16935
    11660
    30804
    부트캠프후기
    CS
    [LG유플러스] 유레카 백엔드 개발자
    17626
    프로그래머스
    백준
    멀티캠퍼스it부트캠프
    13913
    18111
    21736
    5525
    자바
    자료구조
    14940
    코딩테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
KDH.dev
[백준/Java] 10974 - 모든 수열
상단으로

티스토리툴바