728x90
반응형
풀기 전 생각해보기😮
- 아홉명 중 조건에 적합하지 않은 2명을 어떻게 구분할까?
풀이🛫
arr = [int(input()) for i in range(9)]
arrSum = 0
odd1, odd2 = 0, 0
# 정렬 : 버블 정렬 사용 연습
for i in range(9):
for j in range(i+1, 9):
if arr[i] > arr[j]:
arr[i], arr[j] = arr[j], arr[i]
for i in arr:
arrSum += i
for i in range(9):
for j in range(i+1, 9):
if arr[i]+arr[j] == arrSum-100:
odd1, odd2 = arr[i], arr[j]
for i in arr:
if i == odd1 or i==odd2:
continue
print(i)
핵심 정리🎁
for i in range(9):
for j in range(i+1, 9):
if arr[i]+arr[j] == arrSum-100:
- 처음엔 더했을 때 100이 되는 일곱 난쟁이의 조합을 찾으려고 했다
- 그렇지만 효율성 면에서 방해가 되는 2명의 조합을 찾는 것이 훨씬 수월하다고 한다
- 굳이 9명의 난쟁이를 제시한 것도 이중 for문으로 난쟁이 조합을 찾을 수 있도록 한 출제자의 의도가 아닐까 싶었다
- 일곱 난쟁이 문제의 경우 너무나도 잘 정리해둔 블로거 분이 있어서 아래에 링크를 첨부한다
링크💎
후기 😎
- 스페셜 저지는 문제의 답이 여러가지인 경우를 표시한다고 한다!
- 구현 자체는 어느정도 손에 익어가는데, 풀이를 생각해내는 번뜩이는 아이디어를 유추하는게 쉽지 않다
- 잘하는 분들을 보면 그저 부러움..
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] #1018 체스판 다시 칠하기 (0) | 2022.08.28 |
---|---|
[백준 파이썬] #2605 줄세우기 (0) | 2022.08.27 |
[백준 파이썬] #4396 지뢰 찾기 (0) | 2022.08.17 |
[Algorithm Study] 파이썬 부분집합 구하기 예시 (0) | 2022.08.11 |
[백준 파이썬] #2804 크로스워드 만들기 (0) | 2022.07.23 |