티스토리 뷰

반응형
 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

a = int(input())
if 90<=a<=100: print("A")  
elif 80<=a<90: print("B")
elif 70<=a<80: print("C")
elif 60<=a<70: print("D")
else: print("F")

단순하게 풀자면 위와 같이 각 점수별로 해주면 된다.

 

하지만 정말 한줄 숏코딩을 하고 싶다면 다음과 같은 방법도 존재한다.

print('FFFFFFDCBAA'[int(input())//10])

input이 점수로 들어가므로, int로 정수로 만들어주고 // 연산자를 사용하면 점수를 10으로 나눈 몫을 구할 수 있다.

이 몫은 [ ] 떄문에 인덱스의 번호가 되어 'FFFFFFDCBAA' 라는 문자열의 인덱스를 불러올 수 있다.

 

한마디로 a='FFFFFFDCBAA'으로 정의한다면 , 90점 이상의 몫은 9이며 a[9]와 a[10]은 A이므로 AA, 90점 미만이고 80점 이상의 몫은 8이므로 a[8]=B, 이런 식으로 해서 성립하는 코드이다.

 

몫과 나머지 연산자는 구분 문제에서 매우 많이 쓰이므로 꼭 사용법을 알아두도록 하자.

몫은 (숫자)//(숫자) , 나머지는 (숫자)%(숫자) 로 구할 수 있다. 

반응형