백준_정렬_일곱난쟁이_2309_파이썬

석준·2022년 8월 17일
0

백준_문제풀이

목록 보기
10/30
post-thumbnail

✅문제 요약

  1. 9줄에 걸쳐 숫자가 들어옴
  2. 해당 숫자들을 7개 조합해서 100이되는 조합을 출력

✅문제 풀이

단순한 조합으로 풀 수 있는 문제였다
9명중 7명을 찾으면 되므로 처음 3명을 아예 포함하지 않는 조합은 없다
따라서 처음 3명을 하나씩 그룹의 첫번째로 하여 조합함수를 돌렸다

res, cnt = 0, 0
array = [int(input())for _ in range(9)]


def search(v, s, people, cnt):
	# 현재까지의 값이 100이 넘었다면 False
    if v > 100:return False
	
    # 현재 7명이고 값이 100이라면 정렬하고 출력후 프로그램 종료
    if cnt == 7 and v == 100:
        people.sort()
        for p in people:
            print(p, end='\n')
        exit()
	
    # 조합생성 재귀
    for idx in range(s, 9):
        search(v+array[idx], s+1, people+[array[idx]], cnt+1)

# 처음 3명중 하나를 픽
for i in range(3):
    arr = [array[i]]
    search(array[i], i+1, arr, 1)
profile
파이썬 서버 개발자 지망생

0개의 댓글