728x90
최종 코드
list = []
flag = 0
for i in range(9):
list.append(int(input()))
for i in range(8):
for j in range(i + 1, 9):
# print(f"sum(list) -> {sum(list)} list[i] + list[j] -> {list[i] + list[j]}")
if sum(list) - (list[i] + list[j]) == 100:
a = list[i]
b = list[j]
list.remove(a)
list.remove(b)
list.sort()
for i in list:
print(i)
풀이
코드는 간단하다. list를 하나 만들어서 9개의 값을 받는다. 그 후 이중 for문을 사용해서 i와 j를 활용해 두 난쟁이를 추측한다. 모든 list의 값 중 두 개를 뽑아 두 난쟁이를 임의로 정하는 것이다.
그 후 list 전체 합 - (i + j) 가 100인지 확인한다. 맞다면 a b (두 난쟁이) 변수에 해당 값을 넣는다.
for 문 탈출 후에는 해당 값 두 개를 지운 뒤 sorting 한다.
마지막으로 for문으로 list를 모두 출력한다.
트러블슈팅
사실 처음 문제를 읽을 때 주어지는 키는 100을 넘지 않는 자연수이며, 라는 부분을 일곱 난쟁이의 키의 합이 100보다 작다는 뜻으로 잘못 이해해서 if sum(list) - (list[i] + list[j]) <= 100:
로 했다. 문제를 잘 읽어야겠다.
'Algorithm' 카테고리의 다른 글
[1일 3알고리즘] Day1 (0) | 2024.04.11 |
---|---|
[DP]note 5 (0) | 2023.12.03 |
[알고리즘] 점근적 표기법 - 상한 하한 차수 (0) | 2023.10.11 |
[백준] 7568: 덩치 (0) | 2023.07.15 |
[백준] 2798: 블랙잭 (0) | 2023.07.15 |
댓글