반응형
https://www.acmicpc.net/problem/15666
15666번: N과 M (12)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
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(start):
if len(tmp) == m:
print(' '.join(map(str, tmp)))
return
prev =0
for i in range(n):
if prev != num[i] and start <= num[i]:
tmp.append(num[i])
prev = num[i]
dfs(num[i])
tmp.pop()
dfs(min(num))
dfs, 입력받은 수를 중복 가능하게 오름차순으로 정렬하기
1. 중복 가능하게 하려면 visited 검사하지 않는다.
2. 오름차순으로 정렬하려면 start 라는 변수를 설정해줘서 start <= num[i] 로 조건문 설정.
계속해서 start 변수에 이전 수를 넣어주고, 이것보다 다음 수는 같거나 크게 설정해준다.
3. prev != num[i] 이전 수는 현재 수가 아니어야 한다.
어려워만 보이던 N과 M 1부터 12까지 성공!! 뿌듯하다ㅎㅎ
반응형
'코딩테스트 대비 > 백준(BOJ)' 카테고리의 다른 글
| [Python][백준/BOJ] 2606번 : 바이러스 (0) | 2023.07.01 |
|---|---|
| [Python][백준/BOJ] 1260번 : DFS와 BFS (0) | 2023.06.28 |
| [Python][백준/BOJ] 15665번 : N과 M (11) (0) | 2023.06.28 |
| [Python][백준/BOJ] 15664번 : N과 M (10) (0) | 2023.06.27 |
| [Python][백준/BOJ] 15663번 : N과 M (9) (0) | 2023.06.26 |