[백준 12101] 1, 2, 3 더하기 2

Junyoung Park·2022년 7월 6일
0

코딩테스트

목록 보기
494/631
post-thumbnail

1. 문제 설명

1, 2, 3 더하기 2

2. 문제 분석

특정 수 합이 n이 될 때까지 백트래킹을 하면서 수 조합을 집합으로 기록하자.

3. 나의 풀이

import sys

n, k = map(int, sys.stdin.readline().rstrip().split())
answers = set()

def DFS(value, answer):
    if value == n:
        answers.add(tuple(answer))
        return

    if value + 1 <= n:
        DFS(value + 1, answer + [1])

    if value + 2 <= n:
        DFS(value + 2, answer + [2])

    if value + 3 <= n:
        DFS(value + 3, answer + [3])

DFS(0, [])

if len(answers) < k: print(-1)
else:
    answers = list(answers)
    answers.sort()
    answer = answers[k-1]
    print(*answer, sep="+")
profile
JUST DO IT

0개의 댓글