백준 2309 문제 풀이

성 우·2023년 2월 17일
0

제출 했던 정답

input = [int(input()) for _ in range(9)]

result = 0;

for a in input:
    result = result + a;

flag = False

for b in range(0,9):
        for c in range(0,9):
            if c != b:
                if result - (input[b] + input[c]) == 100:
                    a1 = input[b]
                    a2 = input[c]
                    input.remove(a1)
                    input.remove(a2)
                    flag = True;
                    break;
        if flag == True:
            break;

input = sorted(input);
for d in input:
    print(d)

개선된 코드

import itertools
input = [int(input()) for _ in range(9)]


for i in itertools.combinations(input,7):
    if(sum(i) == 100):
        for num in sorted(i):
            print(num)
        break;

itertools.combinations 는 순열을 구할 수 있음.

순열이란 서로다른 N개에서 r개를 선택할때 순서를 고려하여 중복없이 뽑을 수 있음.
리스트 [1,3,5,6]

[(1,3)(1,5)(1,6),(3,5),(3,6)...]

profile
풀스택 개발자가 되고싶은 개발자

0개의 댓글