문제 설명
문제
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
시험 성적을 출력한다.
예제 입력 1
100
예제 출력 1
A
문제 해석
if-elif-else 구문을 사용하여 여러 조건을 처리하는 능력을 테스트하는 문제입니다. 복잡한 조건을 논리적으로 구성하는 방법을 학습할 수 있습니다. 또한 input() 함수를 사용하여 사용자로부터 데이터를 받는 방법을 익히고, 문자열을 정수로 변환하는 과정(형 변환)을 학습하게 합니다.
정답 코드
모법 답안
score = int(input())
if 90 <= score <= 100:
print("A")
elif 80 <= score <= 89:
print("B")
elif 70 <= score <= 79:
print("C")
elif 60 <= score <= 69:
print("D")
else:
print("F")
사용자로부터 점수를 입력받아 int()를 이용해 정수로 변환합니다. 그리고 입력 받은 점수를 조건문 if, elif, else 를 활용해 평가합니다.
주의할 점
① Python에서 들여쓰기는 매우 중요합니다. 조건문 아래의 코드 블록은 들여쓰기를 해야 합니다.
① 각 조건문 끝에 콜론을 추가해야 합니다.
추가 풀이 1
score = int(input())
if 0 <= score <=100:
grades = ['F', 'F', 'F', 'F', 'F', 'F', 'D', 'C', 'B', 'A', 'A']
print(grades[score // 10])
else:
print("잘못된 점수입니다.")
input() 함수로 점수를 입력받고 int()로 정수로 변환합니다. if 문으로 점수가 0-100 사이인지 확인합니다. 그리고 grades 리스트에 각 점수 구간에 대한 등급을 담습니다. score // 10은 점수를 10으로 나눈 몫을 계산합니다(예: 85 // 10 = 8). 이 값을 인덱스로 사용하여 해당하는 등급을 찾습니다.
주의할 점
① grades 리스트는 오름차순으로 정렬되어야 합니다.
score // 10을 사용하여 리스트의 인덱스를 결정하기 때문에 점수가 낮을수록 인덱스가 작아지고, 점수가 높을수록 인덱스가 커집니다. 인덱스가 작은 쪽(왼쪽)에 낮은 등급(F)을 배치하고, 인덱스가 큰 쪽(오른쪽)에 높은 등급(A)을 배치해야 합니다. 이 구조는 점수가 높아질수록(즉, 인덱스가 커질수록) 더 높은 등급이 할당되는 논리를 반영합니다.
② 정수 나눗셈은 항상 정수로 내림하여 반환합니다.
Python을 포함한 많은 프로그래밍 언어에서 정수 나눗셈은 항상 "내림(floor)"으로 동작합니다. 수학적 정의와 일관성을 유지하기 위한 규칙입니다. 따라서 0~9점의 경우: score // 10은 항상 0이 됩니다(예: 5 // 10 = 0, 9 // 10 = 0). grades[0]은 'F'를 반환합니다.
'알고리즘' 카테고리의 다른 글
[백준] 15596번 정수 N개의 합 - Python3 (0) | 2024.09.07 |
---|---|
[백준] 2562번 최댓값 - Python3 (0) | 2024.09.07 |
[백준] 2739번 구구단 - Python3 (0) | 2024.09.06 |
[백준] 10869번 사칙연산 - Python3 (0) | 2024.09.06 |
[백준] 2557번 Hello World - Python3 (0) | 2024.09.06 |