감자튀김 공장🍟

[백준/15652] N과 M (4) (with 파이썬) 본문

Algorithm/BOJ

[백준/15652] N과 M (4) (with 파이썬)

Potato potage 2022. 12. 30. 20:45
반응형

✔ 문제


풀이

👾 내 풀이 (216ms)

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
res = []

def dfs(x):
    if len(res) == m:
        print(' '.join(map(str, res)))
        return

    for i in range(x, n+1):
        if i >= x:
            res.append(i)
            dfs(i)
            res.pop()
dfs(1)

 

⭐ 다른 풀이 (176ms)

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
s = []

def dfs(x):
    if len(s) == m:
        print(*s)
        return

    for i in range(x, n+1):
        s.append(i)
        dfs(i)
        s.pop()

dfs(1)

✔ 후기

i가 x보다 크거나 같으면 해결되겠지? 하고 생각해 if문을 추가했는데

다시 생각해보니까 for문의 i는 항상 x보다 크거나 같아서 if문을 따로 쓰지 않아도 된다ㅎ (˵¯͒⌄¯͒˵)

 

 

 

반응형
Comments