Algorithm/나머지 문제들
[Baekjoon 2309 / python / 브론즈1] 일곱 난쟁이
양선규
2024. 3. 23. 21:07
728x90
반응형
hobit = [] # 난쟁이 리스트
for _ in range(9): # 9명 입력받음
hobit.append(int(input()))
kee = sum(hobit) # 9명 난쟁이 키의 합을 구해둔다
def hobit7(hobit):
for i in range(len(hobit)-1): # 난쟁이 2명을 선택하는 모든 경우의 수 인덱스를 구해서 반복한다
for j in range(len(hobit)):
if j > i:
if kee - (hobit[i] + hobit[j]) == 100: # 난쟁이 2명을 뺀 키가 100 이라면 정답
a = hobit[i]
b = hobit[j]
hobit.remove(a) # 난쟁이 삭제
hobit.remove(b)
hobit.sort() # 정렬
for i in hobit: # 결과 출력
print(i)
return # 답을 찾으면 출력 후 함수 종료
hobit7(hobit)
완전탐색 문제이다. 문제는 매우 간단해서 쉽게 풀 줄 알았는데 코드를 짤 때 뭔가 의외의 까다로움이 있었다.
풀이는 간단하다. 아홉 난쟁이 중 2명을 고르는 모든 경우의 수를 반복문을 이용해서 만든다.
그리고 아홉 난쟁이의 키를 모두 더한 값에서, 난쟁이 2명의 키를 뺐을 때 100이 나온다면 정답이다.
난쟁이 2명을 뺄 때, 첫번째 난쟁이를 빼면 인덱스가 바뀌므로 두번째 난쟁이를 뺄 때 문제가 생길 수 있다.
따라서 요소 값을 미리 변수에 저장해둔 후, 값으로 지정해서 빼면 된다.
728x90
반응형