개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (285)
    • Web Front End (74)
      • Javascript & Typescript (26)
      • React (11)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (7)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 릿코드
  • 회고
  • 오늘의회고
  • TypeScript
  • 노개북
  • JavaScript
  • 자바스크립트
  • 프론트엔드
  • 개발자
  • 노마드북클럽

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

Problem Solved/BOJ

[BOJ][Java] 15650번 - N과 M (2)

2019. 12. 23. 15:16
반응형

문제

백준 15649번 문제: N과 M (2)

N과 M 시리즈 문제 해설 보러가기

  • [BOJ][Java] 15649번 - N과 M (1)
  • [BOJ][Java] 15650번 - N과 M (2)
  • [BOJ][Java] 15651번 - N과 M (3)
  • [BOJ][Java] 15652번 - N과 M (4)

문제 설명

15650번 문제에서 오름차순 조건이 추가된 문제이다.

  1. 수열의 첫 번째 수일 때
  2. 수열의 이전 수가 현재 수보다 작을 때
    위의 두 가지 경우에만 재귀함수를 불러올 수 있도록 if문으로 조건문을 추가해 주었다.
if (i == 0 || arr[i-1] < j)
    dfs(n, m, i+1);

성공 코드

import java.util.Scanner;

public class Main {
    static int[] arr;
    static boolean[] visited;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();    // 1부터 n까지
        int m = sc.nextInt();    // 중복 없이 m개를 고르기
        sc.close();

        arr = new int[m];
        visited = new boolean[n+1];

        dfs(n, m, 0);
    }

    private static void dfs(int n, int m, int i) {
        if (i == m) {
            for (int idx : arr) {
                System.out.print(idx + " ");
            }System.out.println();
        }
        else {
            for (int j = 1; j <= n; j++) {
                if (!visited[j]) {
                    visited[j] = true;
                    arr[i] = j;

                    if (i == 0 || arr[i-1] < j)
                        dfs(n, m, i+1);
                    visited[j] = false;
                }

            }
        }
    }

}
반응형
저작자표시 (새창열림)
    'Problem Solved/BOJ' 카테고리의 다른 글
    • [BOJ][Java] 15652번 - N과 M (4)
    • [BOJ][Java] 15651번 - N과 M (3)
    • [BOJ][Java] 2441번 - 별 찍기 - 4
    • [BOJ][Java] 2440번 - 별 찍기 - 3
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바