Skip to content

Commit 4690d44

Browse files
authored
[BOJ] 15663 N과 M (9) (S2)
1 parent 4559613 commit 4690d44

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

김지호/260127.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# https://www.acmicpc.net/problem/15663
2+
# N과 M (9) , 실버2
3+
4+
import sys
5+
sys.stdin = open("./input.txt",'r')
6+
7+
# 입력 받기
8+
N, M = map(int, input().split())
9+
numbers = sorted(list(map(int, input().split())))
10+
11+
visited = [False] * N # 각 인덱스의 사용 여부 체크
12+
answer = [] # 현재 탐색 중인 수열
13+
14+
def dfs():
15+
if len(answer) == M:
16+
print(*answer)
17+
return
18+
19+
last_used = 0 # 현재 depth에서 마지막으로 선택한 숫자 초기화
20+
21+
for i in range(N):
22+
# 1. 이미 사용한 인덱스이거나
23+
# 2. 현재 depth에서 이전에 선택했던 숫자와 같다면 건너뜀
24+
if not visited[i] and numbers[i] != last_used:
25+
visited[i] = True
26+
answer.append(numbers[i])
27+
last_used = numbers[i]
28+
29+
dfs()
30+
31+
# 백트래킹 (상태 복구)
32+
visited[i] = False
33+
answer.pop()
34+
35+
dfs()

0 commit comments

Comments
 (0)