<내 코드>
import copy
heights = [int(input()) for _ in range(9)]
for i in range(8):
tmp = copy.deepcopy(heights)
tmp[i] = 0
for j in range(i+1, 9):
tmp_num = tmp[j]
tmp[j] = 0
if(sum(tmp) == 100):
ans = tmp
break
tmp[j] = tmp_num
ans.sort()
for i in ans:
if i != 0:
print(i)
얇은 복사와 깊은 복사의 차이를 알 수 있는 문제였다. 일반 copy는 외부적으로는 다른 객체가 생성되나 내부 요소에는 결국 같은 객체를 가리키고 있다는 것을 알았다. 이것을 방지하기 위해 deepcopy를 해주면 외, 내부 모두 다른 새로운 객체로 만들 수 있다.
반응형
'알고리즘 문제풀기 > 백준 - Python' 카테고리의 다른 글
[백준 10973] 이전 순열 - Python (순열) (0) | 2020.10.22 |
---|---|
[백준 1476] 날짜 계산 - Python (브루트포스) (0) | 2020.10.22 |
[백준 1026] 보물 - Python (정렬) (0) | 2020.10.16 |
[백준 1764] 듣보잡 - Python (정렬, 집합) (0) | 2020.10.16 |
[백준 10815] 숫자 카드 - Python (정렬, 이분탐색) (0) | 2020.10.15 |