미해결
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
비슷한 듯 새로운 풀이법
선생님 안녕하세요! 저는 강의를 2회독 중인 학생입니다!
현재 문제만 보고 코드를 구현하고 있던 중 if (dif <= big) and (score<x)를 한번에 걸러주는 조건문을 생각해봤습니다.
어차피 tmp<=min으로 조건문을 하면
tmp ==min인 경우에 불필요하게 'big = temp'를 넣는 과정 외에는 차이가 없다고 생각했기 때문입니다.
실제로 문제에 나와있는 입력값을 넣었을 때도 같은 경우가 나왔습니다.
하지만 채점을 해보니, 테스트 케이스 1번 부터 틀렸었습니다.
제 코드에 어떤 논리적 오류가 있는지 알고 싶습니다...!
다음은 제 코드입니다.
-----------------------------------------------------------------------------------------------------------
n = int(input())
arr = list(map(int, input().split()))
big = 217300000000
ave = int(sum(arr)/n + 0.5)
score = 0
res = 0
for idx, x in enumerate(arr):
tmp = abs(ave-x)
if (tmp <= big) and (score < x):
big = tmp
score = x
res = idx+1
else:
print(ave, res)