코딩 테스트/COS PRO Python 2급

[프로그래머스 - COS PRO 파이썬 2급] 4. 학점 계산

알밤바 2022. 7. 5. 09:24
728x90
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

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

주어진 학생들의 점수는 다음과 같이 학점을 받습니다.

  • A 학점 : [86점, 98점] 2명
  • B 학점 : [72점] 1명
  • C 학점 : [60점] 1명
  • D 학점 : [45점] 1명
  • F 학점 : 0 명

따라서 [2,1,1,1,0] 을 return 하면 됩니다.


코드

def solution(scores):
    grade_counter = [0 for i in range(5)]
    for x in scores:
        if x >= 85:
            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

 

풀이

  • 부등호를 활용하여 각 점수 별 학점을 나타내고자 함
  • if 조건문이 나온 이후 elif가 나왔을 때, 70 <= x <= 85 가 아닌 x >= 70으로만 코드 작성해도 됨
    → elif 조건문에서의 범위는 if 조건문에서 활용된 범위롤 제외한 범위이기 때문
728x90
반응형