🐸  코딩혜영의 소소한 이야기

요즘 백준 문제를 풀기 시작했다.

정말 부담 가지지 않고, 생각날 때 마다 몇 문제 씩 풀고 있다.

 

난이도 별로 나열해서 기초부터 풀고 있는데,

관련된 지식까지 복습하면서 가기에는 꽤 유용하다.


❓ 백준 9498 python : 시험성적

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


🚀  본격 문제 풀이

내가 처음 작성했던 코드는 다음과 같다.

input_score=int(input())

if (input_score>=90 and input_score<=100):
    print('A')
elif (input_score>=80 and input_score<=89):
    print('B')
elif (input_score>=70 and input_score<=79):
    print('C')
elif (input_score>=60 and input_score<=69):
    print('D')
else :
    print('F')

 쓰면서도 상당히 비효율적임을 느꼈다. 문제 그대로 범위를 설정해줬는데, 어차피 if문은 순차적으로 넘어가면서 읽히기 때문에 이렇게 작성할 필요가 없다.

input_score=int(input())

if (input_score>=90) :
    print('A')
elif (input_score>=80):
    print('B')
elif (input_score>=70):
    print('C')
elif (input_score>=60):
    print('D')
else :
    print('F')

문제가 더욱더 복잡해졌을 때, 이와 같은 실수를 반복하지 말아야겠다는 생각이 들었다.

 

또한 더 좋은 코드를 찾다가,

삼항표현식 이라는 개념을 공부하게 되었다.

 

➕개념) 삼항표현식

true_value if 조건식 else false_value

조건식이면 true_value

조건식거짓이면 false_value를 반환한다.

 

- 잘 사용하면 if-else 조건식보다 더 깔끔하게 표현할 수 있다.

- 한 줄로 코드 작성 가능

#삼항표현식
value = true_value if condition else false_value

#if-else 조건식
if condition:
	value = true_value
else:
	value=false_value

 

이 문제도 삼항표현식으로 풀 수 있다.

input_score=int(input())
print('A') if input_score>=90 else print('B') if input_score>=80 else print('C') if input_score>=70 else print('D') if input_score>=60 else print('F')

볼 때는 굉장히 복잡해보이지만, 실제로 작성할 때는 오히려 편하다. 하지만 가독성은 확실히 떨어지는 것 같다.

 

+관련지식1) 삼항연산자

조건식 ? true_value : false_value

 

+관련지식2) 중첩 삼항 표현식

true_value if 조건식 else 삼항표현식삽입

false_value 자리에 삼항표현식을 n번 삽입해서 중첩에 중첩을 시킬 수 있다.

+ Recent posts