needmoreeasy EN 한국어
배우기

32 — 성적부: 이름마다 점수, 그리고 평균

★★★★☆ (4/5)프로젝트
선수 지식
30 — 상점, 31 — 은행
결과물
이름마다 점수를 담고 평균과 최고점을 알려 주는 성적부

성적부는 이름마다 점수 하나입니다. 그런데 평균을 내려면 점수만 따로 모아야 합니다 — 표에는 순서도 합계도 없기 때문입니다. 그래서 표를 훑으면서 점수를 목록에 옮겨 담습니다.

단계

  1. 표에 이름과 점수를 담습니다:

    성적부는 빈 표
    성적부에 민수를 88로 넣어
    성적부에 지안을 92로 넣어
    성적부의 민수 말해줘
    
    실행해 보기 →

    88이 나옵니다.

  2. 훑으면서 점수만 목록에 모읍니다. 목록이 되어야 합과 개수를 물을 수 있습니다:

    성적부는 빈 표
    성적부에 민수를 88로 넣어
    성적부에 지안을 92로 넣어
    점수들은 빈 목록
    성적부의 이름마다 반복해
        점수는 성적부의 이름
        점수들에 점수 넣어
    끝
    점수들 개수 말해줘
    점수들 합 말해줘
    
    실행해 보기 →

    2와 180이 나옵니다.

  3. 평균은 합을 인원으로 나눈 것입니다. 나눌 수는 먼저 이름에 담습니다:

    점수들은 목록 88, 92
    인원은 점수들 개수
    평균은 점수들 합
    평균을 인원으로 나눠
    평균 말해줘
    
    실행해 보기 →

    90.0이 나옵니다. 나누는 수는 이름이나 숫자여야 합니다 — 점수들 개수로 나눠처럼 바로 쓸 수는 없어서 인원에 먼저 담았습니다.

  4. 최고점은 목록에게 바로 물어봅니다:

    점수들은 목록 88, 92, 75
    점수들 중 가장 큰 것 말해줘
    
    실행해 보기 →

    92가 나옵니다.

  5. 전체입니다:

    성적부는 빈 표
    성적부에 민수를 88로 넣어
    성적부에 지안을 92로 넣어
    성적부에 하늘을 75로 넣어
    점수들은 빈 목록
    성적부의 이름마다 반복해
        점수는 성적부의 이름
        점수들에 점수 넣어
        이름 말해줘
        점수 말해줘
    끝
    인원은 점수들 개수
    평균은 점수들 합
    평균을 인원으로 나눠
    평균 말해줘
    점수들 중 가장 큰 것 말해줘
    
    실행해 보기 →

직접 해보기

평균보다 높은 사람만 뽑아 보세요 — 표를 한 번 더 훑으면서 만약에 점수가 평균보다 크면 이름을 보여 주면 됩니다. 평균을 먼저 다 구한 다음 두 번째로 훑어야 합니다. 첫 훑기 중에는 평균이 아직 없습니다.

배운 것

  • 표는 이름으로 찾을 때, 목록은 합·개수·최댓값을 물을 때 씁니다.
  • 표를 훑으면서 값을 목록에 옮기면 둘의 장점을 다 씁니다.
  • 평균은 합을 인원으로 나눈 것이고, 나누는 수는 이름이나 숫자여야 합니다.
  • 평균이 필요한 비교는 평균을 다 구한 다음에 합니다.

GitHub에서 이 문서 보기