윤굥굥
yg323
윤굥굥
전체 방문자
오늘
어제
  • 굥굥 DEV
    • Computer Science
      • 자료구조 및 알고리즘
      • 운영체제
      • 네트워크
      • 데이터베이스
    • Programming Language
      • Java
      • Kotlin
    • Android
      • with Kotlin
    • Algorithm
      • with Kotlin
    • 하나씩 습득하는 중

블로그 메뉴

  • ↓백준 모아보기 ↓
  • 💚 플레티넘 문제 모아보기
  • 💛 골드 문제 모아보기
  • 🤍 실버 문제 모아보기
  • 🤎 브론즈 문제 모아보기

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
윤굥굥
Algorithm/with Kotlin

[백준][코틀린] 15652 N과 M (4)

Algorithm/with Kotlin

[백준][코틀린] 15652 N과 M (4)

2022. 2. 5. 14:56

문제 내용

문제

자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.

  • 1부터 N까지 자연수 중에서 M개를 고른 수열
  • 같은 수를 여러 번 골라도 된다.
  • 고른 수열은 비내림차순이어야 한다.
  • 길이가 K인 수열 A가 A1 ≤ A2 ≤ … ≤ AK−1 ≤ AK를 만족하면, 비내림차순이라고 한다.
입력

첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)

출력

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

수열은 사전 순으로 증가하는 순서로 출력해야 한다.

예제 입력 예제 출력
3 1 1
2
3
4 2 1 1
1 2
1 3
1 4
2 2
2 3
2 4
3 3
3 4
4 4
3 3 1 1 1
1 1 2
1 1 3
1 2 2
1 2 3
1 3 3
2 2 2
2 2 3
2 3 3
3 3 3

문제 풀이

중복 조합 문제이다!

</>̆̈ 코드

private val sb = StringBuilder()
private lateinit var array: IntArray

fun main() {
    val (n, m) = readLine()!!.split(" ").map { it.toInt() }
    array = IntArray(m)

    repeatCombination(n, m)
    print(sb.toString())
}

private fun repeatCombination(n: Int, m: Int, depth: Int = 0, index: Int = 1) {
    if (depth == m) {
        sb.append(array.joinToString(" ", postfix = "\n")); return
    }

    for (i in index .. n) {
        array[depth] = i
        repeatCombination(n, m, depth + 1, i)
    }
}

링크

 

15652번: N과 M (4)

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

www.acmicpc.net

 

저작자표시 비영리 변경금지 (새창열림)
  • 문제 내용
  • 문제 풀이
  • </>̆̈ 코드
  • 링크
'Algorithm/with Kotlin' 카테고리의 다른 글
  • [백준][코틀린] 14889 스타트와 링크
  • [백준][코틀린] 14888 연산자 끼워넣기
  • [백준][코틀린] 15651 N과 M (3)
  • [백준][코틀린] 15650 N과 M (2)
윤굥굥
윤굥굥

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.