[백준] 2309번 (python 파이썬) 일곱난쟁이

2021. 3. 19. 13:32발돋움/알고리즘

728x90
반응형

문제

9명 중 7명을 찾는 것보다 2명을 찾는게 빠르다.

 

불필요한 중복연산을 방지하기 위해 난쟁이 9명의 무게는 w로 미리 변수에 담아뒀고,

find1find2에 선택한 난쟁이 두명을 각각 담아 줬다.

 

변수로 담아두지않고 for문의 임시 변수를 통해 인덱스에 접근하면 배열때문에 런타임 오류가 난다.

또 나중에 선택한 난쟁이 2명이 맞았을때 배열에서 제거할때 remove는 인덱스가 아닌 값자체를 빼는 것이기 때문에 변수로 담아주는게 좋다.

 

for문이 2개이니 break를 두번 걸어주고 정렬까지 해준 후 출력해주면 된다.

 

import sys를 사용해서 더 빠르게 입력받고 싶은데 아직 잘 쓸줄 모른다..언젠가 잘 쓸 날이 오겠지 :)

728x90
h = []
for _ in range(9):
    h.append(int(input()))
w = sum(h)
i = 0
for x in range(9):
    find1 = h[x]
    for j in range(9):
        find2 = h[j]
        if find1 == find2:
            continue
        result = w - find1 - find2
        if result == 100:
            break
    if result == 100:
        break
h.remove(find1)
h.remove(find2)
h.sort()
for n in h:
    print(n)

 

 

728x90
반응형