Posts 학점계산 [CosProLv2]
Post
Cancel

학점계산 [CosProLv2]

URL https://programmers.co.kr/learn/courses/33/lessons/1858

문제 설명

  • XX 학교에서는 다음과 같이 학생들의 점수에 따라 학점을 부여합니다.
    • 85점 ~ 100점 : A 학점
    • 70점 ~ 84점 : B 학점
    • 55점 ~ 69점 : C 학점
    • 40점 ~ 54점 : D 학점
    • 0점 ~ 39점 : F 학점
  • 학생들의 점수가 들어있는 배열 scores가 매개변수로 주어질 때, A 학점, B 학점, C 학점, D 학점, F 학점을 받은 학생들의 수를 배열에 순서대로 담아 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.

매개변수 설명

  • 학생들의 점수가 들어있는 배열 scores가 solution 함수의 매개변수로 주어집니다.
  • scores의 길이는 1 이상 200 이하입니다.
  • 학생들의 점수는 0 점 이상 100점 이하의 정수입니다.

return 값 설명

  • solution 함수는 [A 학점 학생 수, B 학점 학생 수, C 학점 학생 수, D 학점 학생 수, F 학점 학생 수] 를 순서대로 배열에 담아 return 합니다.

빈칸 코드

  • 빈칸 채우기 문제 안내
  • 빈칸 채우기는 이미 완성된 코드 중 빈칸에 알맞은 코드를 입력하는 문제 타입입니다.
  • 빈칸을 제외한 기본 코드는 수정할 수 없습니다.
  • 빈칸을 채우지 않을 경우, 실행 결과에 에러 메시지가 표시됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solution(scores):
    grade_counter = [0 for i in range(5)]
    for x in scores:
        if '빈칸':
            grade_counter[0] += 1
        elif '빈칸':
            grade_counter[1] += 1
        elif '빈칸':
            grade_counter[2] += 1
        elif '빈칸':
            grade_counter[3] += 1
        else:
            grade_counter[4] += 1
    return grade_counter

문제 풀이

  • 85 ~ 100 은 A
  • 70 ~ 84 는 B
  • 55 ~ 69 는 C
  • 40 ~ 54 는 D
  • 39 ~ 0 은 F
  • 위의 공식을 생각하여 if와 elif 뒤에 점수를 넣으면 된다.
  • if문은 한번 실행하고나면 아래의 elif, else는 다시 재 실행이 되지 않는다.
  • 따라서 맨 위에는 x >= 85, x >= 70, x >= 55, x >= 40을 넣고 0~39는 마지막이므로 else로 처리하면 된다.
  • 만약 x가 71이라면 처음 if문은 넘어가고 두번째 elif에서 실행되며 다음 x로 넘어가게 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solution(scores):
    grade_counter = [0 for i in range(5)]
    for x in scores:
        if x >= 84:
            grade_counter[0] += 1
        elif x >= 70:
            grade_counter[1] += 1
        elif x >= 55:
            grade_counter[2] += 1
        elif x >= 40:
            grade_counter[3] += 1
        else:
            grade_counter[4] += 1
    return grade_counter
This post is licensed under CC BY 4.0 by the author.