일곱 숫자의 합이 100이 되며 고정적으로 9개의 숫자를 입력 받으니 전체 합에서 두개를 뺀 값이 100이 되면 된다. 당연히 7개의 숫자를 더하는 코드를 짜는 것보다 100이 되게 빼는 2개의 숫자를 구하는 것이 간단하다.
import sys
input = sys.stdin.readline
arr = list()
result_arr = list()
for i in range(9):
arr.append(int(input()))
sum_var = sum(arr)
for i in range(9):
for j in range(i+1,9):
temp = arr[i] + arr[j]
if sum_var - temp == 100:
result_arr.append(arr[i])
result_arr.append(arr[j])
arr.remove(result_arr[0])
arr.remove(result_arr[1])
arr.sort()
for i in range(len(arr)):
print(arr[i])
처음에는 위 코드 처럼 작성했는데 생각해보니 그냥 조건문에서 바로 출력하면 훨씬 간단하다.
import sys
input = sys.stdin.readline
arr = list()
result_arr = list()
for i in range(9):
arr.append(int(input()))
sum_var = sum(arr)
arr.sort()
for i in range(9):
for j in range(i+1,9):
if sum_var - arr[i] - arr[j] == 100:
for k in range(9):
if k == i or k == j:
continue
else:
print(arr[k])
근데 이렇게 짜면서 생각이 든건데... 이렇게 되면 for문이 3중으로 사용되서 시간복잡도가 문제가 되는 것 같은데.. 일단 이게 코드가 간단하긴 한 것 같다.(근데 어차피 리스트의 크기가 9라서 딱히 문제가 될 것 같지는 않다..)
'Algorithm > 백준' 카테고리의 다른 글
백준 7795번(Python) : 먹을 것인가 먹힐 것인가 (0) | 2021.03.03 |
---|---|
백준 2003번(Python) : 수들의 합 2 (0) | 2021.03.03 |
백준 2798번(Python) : 블랙잭 (0) | 2021.03.03 |
백준 1065번(Python) : 한수 (0) | 2021.03.01 |
백준 11727번(Python) : 2 x n 타일링 2 (0) | 2021.02.26 |