반응형
https://www.acmicpc.net/problem/15665
15664번: N과 M (10)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
내 코드
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
num = sorted(list(map(int, input().split())))
tmp =[]
def dfs():
if len(tmp) == m:
print(' '.join(map(str, tmp)))
return
prev =0
for i in range(n):
if prev != num[i]:
tmp.append(num[i])
prev = num[i]
dfs()
tmp.pop()
dfs()
dfs, 입력받은 수를 중복 가능하게 정렬하기
이제 헷갈리던 부분이 어느 정도 정리가 됐다.
조건은 중복이 가능하게 하도록 하지만, 만약 9 9 가 리스트 안에 있을 경우 9 9 가 두 번 출력되지 않도록 하는 것이다.
중복이 가능하게 하려면 visited라는 조건을 없애면 된다!!
visited → 중복 문제
if prev != num[i] :
prev = num
→ 리스트에 있는 겹치는 수들의 수열을 한 번만 출력
반응형
'코딩테스트 대비 > 백준(BOJ)' 카테고리의 다른 글
| [Python][백준/BOJ] 1260번 : DFS와 BFS (0) | 2023.06.28 |
|---|---|
| [Python][백준/BOJ] 15666번 : N과 M (12) (0) | 2023.06.28 |
| [Python][백준/BOJ] 15664번 : N과 M (10) (0) | 2023.06.27 |
| [Python][백준/BOJ] 15663번 : N과 M (9) (0) | 2023.06.26 |
| [Python][백준/BOJ] 15657번 : N과 M (8) (0) | 2023.06.26 |