백준 온라인 저지 [BOJ]/PYTHON [파이썬]
[백준(BOJ)] 2309번 : 일곱 난쟁이 - PYTHON[파이썬]
퉁이리
2022. 2. 4. 18:18
반응형
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
⊙ 문제
⊙ 입력
⊙ 출력
⊙ 예제 입출력
⊙ 알고리즘 분류
- 브루트포스 알고리즘
- 정렬
⊙ 문제 접근 과정
브론즈 2 맞나..? (더 높여도 될 듯!)
투 포인터로 풀었다.
우선 list에 9개의 값을 저장해주고 정렬한다.
그리고 그 값들을 전부 더해주고 100을 빼준 값을 변수 searchNum에 저장해준다.
마지막으로 투 포인터 알고리즘을 사용해 list에서 두 개를 뽑아 더한 값과 searchNum의 값이 일치하는지 확인하면 된다. 일치하다면 9개의 값이 있는 list에서 그 두개의 값을 제외한 7개의 값들을 출력해주면 된다.
⊙ 문제 풀이
li = [int(input()) for _ in range(9)]
li.sort()
searchNum = sum(li) - 100
start, end = 0, len(li)-1
while start <= end:
if searchNum > li[start] + li[end]:
start += 1
elif searchNum < li[start] + li[end]:
end -= 1
else:
delFirst, delSecond = start, end
break
for i in range(9):
if i not in (delFirst, delSecond):
print(li[i])
⊙ 결과
⊙ 마무리
NONE
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형