[JAVA-자바] 15650번: N과 M (2)

2025. 1. 9. 14:52·알고리즘/백준

 

2025.01.09 - [알고리즘/백준] - [JAVA-자바] 15649번: N과 M (1)

기존에 풀었던 문제에서 중복 수열을 제거하고, 사전 순으로 증가하는 순서로 출력해야한다는 제약요건이 추가된 문제입니다.

 

예제 2번의 경우 - N이 4고 M이 2일때

1 2
1 3
1 4
2 3
2 4
3 4

와같은 출력 결과가 나오는걸 보면 아시겠지만, 단순하게 자기자신과 같거나 작은 숫자들을 사용하지 않으면

출력 형식에 부합하는걸 보실 수 있습니다. 이를 코드로 옮기자면

 

소스코드:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
    static BufferedReader br;
    static BufferedWriter bw;

    static int N;
    static int M;
    static int[] result;

    public static void main(String[] args) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());

        br.close();

        result = new int[M];

        backtracking(0, 1);

        bw.close();
    }

    private static void backtracking(int depth, int start) throws IOException {
        if (depth == M) {
            for (int i = 0; i < M; i++) {
                bw.write(result[i] + " ");
            }
            bw.newLine();
            return;
        }

        for (int q = start; q <= N; q++) {
            result[depth] = q;
            backtracking(depth + 1, q + 1);
        }
    }
}

 

글의 내용 중 잘못된 점이나 수정이 필요한 부분, 혹은 궁금한 사항이 있다면 언제든 댓글로 남겨주시면 감사하겠습니다.

여러분의 피드백은 더 나은 글을 작성하는 데 큰 도움이 됩니다. 감사합니다.

'알고리즘 > 백준' 카테고리의 다른 글

[JAVA-자바] 15652번: N과 M (4)  (0) 2025.01.14
[JAVA-자바] 15651번: N과 M (3)  (0) 2025.01.10
[JAVA-자바] 15649번: N과 M (1)  (0) 2025.01.09
[JAVA-자바] 1107번: 리모컨  (0) 2025.01.08
[JAVA-자바] 6064번: 카잉 달력  (0) 2025.01.03
'알고리즘/백준' 카테고리의 다른 글
  • [JAVA-자바] 15652번: N과 M (4)
  • [JAVA-자바] 15651번: N과 M (3)
  • [JAVA-자바] 15649번: N과 M (1)
  • [JAVA-자바] 1107번: 리모컨
raven
raven
Github : https://github.com/RabeMaster | Email : ra___be@naver.com
  • raven
    배움을 원하는 사람
    raven
  • 전체
    오늘
    어제
  • 공지사항

    • 안녕하세요
    • 분류 전체보기 (169)
      • 네이버 부스트캠프 10기 (7)
        • 멤버십 (5)
        • 챌린지 (1)
        • 베이직 (1)
      • 공부 (2)
        • JAVA (1)
        • CS (0)
        • 정보처리기사 (1)
      • 알고리즘 (159)
        • 백준 (159)
      • 개발 (1)
        • 백준 확장 프로그램 (1)
  • 블로그 메뉴

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

  • 인기 글

  • 태그

    그래프 탐색
    너비 우선 탐색
    백트래킹
    네이버부스트캠프
    다이나믹 프로그래밍
    부트캠프
    알고리즘
    정렬
    브루트포스 알고리즘
    IT
    스택
    회고
    네이버
    java
    코딩테스트
    개발
    자바
    수학
    문자열
    그리디 알고리즘
    네부캠
    백준
    그래프 이론
    구현
    최단 경로
    코딩
    멤버십
    부스트캠프
    코테
    자료 구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
raven
[JAVA-자바] 15650번: N과 M (2)
상단으로

티스토리툴바