890899034361485
임재연
  • 2016.2.28 14:49
  • 조회수 153
  • 답변수 1
890899034361485
임재연
  • 2016.2.28 14:49
  • 조회수 153
  • 답변수 1

결과값을 어떻게 리턴해줘야되는건지 모르겠습니다..

아래는 틀렸다는 메시지를 보여주는데요 코드에 입력받은 값, 정렬한 리스트,최저점수를 확인하기 위해 출력해 주었습니다.

틀렸습니다. 다시 시도해 보세요. -_-
ori: [9.9, 10.0, 5.6, 7.8, 5.7, 8.8, 0.2]
sort: [0.2, 5.6, 5.7, 7.8, 8.8, 9.9, 10.0]
del: [5.6, 5.7, 7.8, 8.8, 9.9]
sum: 37.800000000000004
result: 7.5600000000000005

================================
최저와 최고점수를 제외한 값인 37.8을 5로 나눌경우 7.56의 값이 나오구요..

================================
ori: [5.6, 5.7, 7.8, 8.8, 9.9]
sort: [5.6, 5.7, 7.8, 8.8, 9.9]
del: [5.7, 7.8, 8.8]
sum: 22.3
result: 7.433333333333334

================================
두번째 경우에서 최저와 최고점수를 제외하고 합계인 22.3을 3으로 나누면 7.4333... 이 나옵니다..

================================
점수가 일치하지 않습니다.
올바른 결과값: 4.460000000000001
실제결과: 7.433333333333334
올바른 결과값: True
실행결과: False

================================
하지만 올바른 결과 값은 4.46이라고 나오는데요.. 계산해 보니 이 값은 두번째 입력의 최저와 최고점수를 제외하고 합친 22.3을 5로 나눈 결과 값인 4.46이었습니다..

문제에서는 7명의 심사위원중 최저와 최고를 제외한 5명의 평균을 내는거라고 했는데
제가 문제를 잘 못 이해한 것인가요 ㅠㅠㅠ

diving_scores
def diving_score(scores):
    '''심사위원의 최고/최소 점수를 제외한 평균을 return하세요'''
    len1 = len(scores)
    print("ori",end=": ");print(scores)
    scores.sort()
    print("sort",end=": ");print(scores)
    del scores[0],scores[-1]
    print("del",end = ": ");print(scores)

    s = 0
    if scores:
        for score in scores:
                s += score               
        print("sum",end = ": ");print(s)
    print("result",end = ": ");print(s/len(scores))   
    return s/len(scores)
  • #파이썬 입문
  • #다이빙 점수 평가

1 답변

  • Gscxhpxkg5i74t30rimh
    정두식
    • 2016.2.28 17:30

    (답변이 잘못되서 수정합니다)
    Scores의 합에서 최대 최소을 빼는 방식으로 문제를 풀었었는데 scores자체에서 값을 지우는 경우 체점 로직에 문제가 있었네요. 지적해 주셔서 감사합니다. 다시 해 보시면 잘 통과 될 것 같습니다.

    • 넵 잘 통과되었습니다~ ㅎ 감사합니다!! 아 그리구 121개 강의를 다 들었는데 아직 86%라고 나오네요...ㅎ 아직 더 있는건가요..?-임재연
      2016.2.29 20:45

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.