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