룰루코딩

백준 3040 백설 공주와 일곱 난쟁이 본문

백준

백준 3040 백설 공주와 일곱 난쟁이

rulru01 2024. 11. 10. 00:58

문제


솔루션

li = [int(input()) for _ in range(9)]
for i in li:
    for j in li:
        if (sum(li)-i-j)==100:
            num1, num2 = i, j
            break
            
li.remove(num1)
li.remove(num2)
for i in li:
    print(i)

깨달은 점

브루트포스 문제인데 7번 for문을 돌려야하나 했는데 반대로 생각해야했다!!

for i in li:
    for j in li:
        if (sum(li)-i-j)==100:

이렇게 총합에서 두개의 값을 뺐을때 100이 되는 경우를 찾으면 되는 브루트포스 문제였다.

 

또한 처음에는 if문 안에 remove를 넣었는데 value오류가 발생해 밖으로 빼주었다.

ValueError가 발생하는 이유는 for 루프 안에서 리스트를 반복하면서 동시에 요소를 제거하기 때문이라고한다.

리스트에서 두 값을 제거할 때, 먼저 이 값을 찾고 루프 밖에서 제거하는 방식으로 해야한다고 한다.

'백준' 카테고리의 다른 글

백준 1244 스위치 켜고 끄기  (1) 2024.11.10
백준 2563 색종이  (0) 2024.11.10
백준 2178 미로 탐색  (0) 2024.11.09
백준 13023 ABCDE  (0) 2024.11.09
백준 2023 신기한 소수  (0) 2024.11.09