728x90
반응형
코딩테스트 해설
문제 유형 : 백트래킹
작성 코드
import sys
N, M = map(int, sys.stdin.readline().rstrip().split(" "))
sequence = sorted(map(int, sys.stdin.readline().rstrip().split(" ")))
def backtrack(start, current):
if len(current) == M:
print(" ".join(map(str, current)))
return
for i in range(start, N):
backtrack(i, current + [sequence[i]])
backtrack(0, [])
접근 방식
- 백트래킹 방식을 적용하여 current의 크기가 M 일경우, 현재 값을 출력하도록 하고 재귀를 멈추도록 하여 불필요한 연산을 줄이도록 함
개선 사항
- 불필요한 연산을 줄였습니다.
- 백트래킹을 사용하여 올바르게 작동하도록 하였습니다.

728x90
반응형
'알고리즘' 카테고리의 다른 글
[ Python ] 1208번 : 부분수열의 합 2 (1) | 2024.08.21 |
---|---|
[ Python ] 6603번 : 로또 (0) | 2024.08.20 |
[ Python ] 15655번 : N과 M (6) (0) | 2024.08.20 |
[ 알고리즘 ] 백트래킹(BackTracking) (0) | 2024.08.16 |
[ 알고리즘 ] 순열과 조합 (0) | 2024.08.14 |