[BOJ] 15650: N과 M(2) (JAVA)

2024. 4. 21. 19:59·코테/Algorithm
728x90
 

15650번: N과 M (2)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

 

풀이

 

깊이 depth변수와 수열을 저장해줄 tmp변수를 사용해서 문제를 풀었다.

오름차순이어야 하기 때문에 Comb 메서드에서 새로 뽑아주는 i는 이전에 들어온 x보다 무조건 커야한다.

M개 만큼 뽑았으면 StringBuilder에 담아준다.

 

전체코드

 

package 백준renew;

import java.io.*;
import java.util.*;

public class 실버3_15650_N과M2 {
	static int N, M;
	static boolean arr[];
	static int depth;
	static String tmp = "";
	static StringBuilder sb = new StringBuilder();
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		N = Integer.parseInt(st.nextToken());
		M = Integer.parseInt(st.nextToken());
		
		for(int i=1; i<=N; i++) {
			arr = new boolean[N+1];
			depth = 1;
			arr[i] = true;
			tmp = i+" ";
			Comb(i, depth, tmp);
		}
		
		bw.write(sb.toString());
		bw.close();
		
	}
	static void Comb(int x, int depth, String tmp) {
		if(depth == M) {
			sb.append(tmp).append('\n');
		}
		for(int i=1; i<=N; i++) {
			if(x < i && !arr[i]) {
				arr[i] = true;
				Comb(i, depth+1, tmp+i+" ");
				arr[i] = false;
			}
		}
		
	}
}
728x90

'코테 > Algorithm' 카테고리의 다른 글

[BOJ] 1051: 숫자 정사각형 (JAVA)  (0) 2024.04.24
[BOJ] 1303: 전쟁 - 전투 (JAVA)  (0) 2024.04.23
[BOJ] 1431: 시리얼 번호 (JAVA)  (0) 2024.04.21
[BOJ] 17390: 이건 꼭 풀어야 해! (JAVA)  (1) 2024.04.19
[BOJ] 15720: 카우버거 (JAVA)  (1) 2024.04.19
'코테/Algorithm' 카테고리의 다른 글
  • [BOJ] 1051: 숫자 정사각형 (JAVA)
  • [BOJ] 1303: 전쟁 - 전투 (JAVA)
  • [BOJ] 1431: 시리얼 번호 (JAVA)
  • [BOJ] 17390: 이건 꼭 풀어야 해! (JAVA)
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • Dev (412) N
      • App·Android (1)
      • BE (44) N
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (11) N
        • 스프링부트 시큐리티 & JWT (0)
        • PHP (6)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (12)
        • AI (4)
        • Bigdata (6)
        • Database (1)
        • 빅데이터분석기사 (0)
      • Infra (0)
      • Activity (0)
        • Education (0)
        • Intern (0)
        • 리모트 인턴십 6기 (0)
        • 구름톤 유니브 4기 (0)
        • SW교육기부단 15기 (0)
      • CS (8)
      • 취준 (13)
        • 자격증 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (3)
      • 코테 (270)
        • Algorithm (222)
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 회고 (0)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    이분탐색
    브루트포스 알고리즘
    매개변수탐색
    티스토리챌린지
    누적합
    그래프이론
    그래프탐색
    투포인터
    정렬
    오블완
    백준
    문자열
    그리디알고리즘
    구현
    시뮬레이션
    수학
    자료구조
    다이나믹프로그래밍
    최단경로
    너비우선탐색
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[BOJ] 15650: N과 M(2) (JAVA)
상단으로

티스토리툴바