15655_N과 M(6) (Python)
0. 출처
1. 기록
2. 풀이
(1) 아이디어, 시간복잡도, 자료구조
1. 아이디어
>> 주어진 수를 기준으로 정렬하여 조합을 구하는 문제
2. 시간복잡도
>>
3. 자료구조
>>
(2) 예제 입력, 예제 출력
- 예제 입력 1 -
3 1
4 5 2
- 예제 출력 1 -
2
4
5
- 예제 입력 2 -
4 2
9 8 7 1
- 예제 출력 2 -
1 7
1 8
1 9
7 8
7 9
8 9
(3) 코드
n, m = map(int, input().split())
nums = list(map(int, input().split()))
# ex_nums = [(map(int, input().split()))]
# 이렇게 입력하면 객체 형태로 나온다.
# [<map object at 0x000001F1DD420E80>]
nums = sorted(nums)
stack = []
def recursive_dfs(start):
if len(stack) == 2:
print(' '.join(map(str, stack)))
return
for i in range(start, len(nums)):
if nums[i] in stack:
continue
else:
stack.append(nums[i])
recursive_dfs(i)
stack.pop()
recursive_dfs(0)
(4) 정리
(5) 참고