맨 처음 첫 번째 코드를 제출한 뒤, 2개의 오답 케이스가 발견되었다.
이유를 찾다, 혹시나? 하는 마음으로 두 번째 코드를 제출하였더니 통과.
잘못된 부분은 7번째 줄의 or, and 연산 부분이었다.
and 연산이 or 연산보다 우선순위가 높기에, 괄호를 쳐 주지 않으면 잘못된 결과가 나올 수 있다는 것을 망각했던 것 같다.
앞으로 기본에 더 충실해야 겠다.
def solution(scores):
answer = ''
for i in range(len(scores)):
tmp = []
for j in range(len(scores)):
tmp.append(scores[j][i])
if min(tmp) == tmp[i] or max(tmp) == tmp[i] and tmp.count(tmp[i]) == 1:
tmp.remove(tmp[i])
avg = sum(tmp) / len(tmp)
if avg >= 90:
answer += 'A'
elif avg >= 80:
answer += 'B'
elif avg >= 70:
answer += 'C'
elif avg >= 50:
answer += 'D'
else:
answer += 'F'
return answer
def solution(scores):
answer = ''
for i in range(len(scores)):
tmp = []
for j in range(len(scores)):
tmp.append(scores[j][i])
if (min(tmp) == tmp[i] or max(tmp) == tmp[i]) and tmp.count(tmp[i]) == 1:
tmp.remove(tmp[i])
avg = sum(tmp) / len(tmp)
if avg >= 90:
answer += 'A'
elif avg >= 80:
answer += 'B'
elif avg >= 70:
answer += 'C'
elif avg >= 50:
answer += 'D'
else:
answer += 'F'
return answer