🐸 코딩혜영의 소소한 이야기
요즘 백준 문제를 풀기 시작했다.
정말 부담 가지지 않고, 생각날 때 마다 몇 문제 씩 풀고 있다.
난이도 별로 나열해서 기초부터 풀고 있는데,
관련된 지식까지 복습하면서 가기에는 꽤 유용하다.
❓ 백준 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번 삽입해서 중첩에 중첩을 시킬 수 있다.
'코딩테스트 준비 > Python' 카테고리의 다른 글
1676 python 팩토리얼 0의 개수 4가지 풀이법 (0) | 2023.08.16 |
---|---|
[백준/python] 11720번 : 숫자의 합 (0) | 2023.05.03 |
[백준/python] 2884번: 알람 시계 (0) | 2023.04.15 |
[백준/python] 14681 사분면 고르기 (1) | 2023.04.13 |
백준 2753 python : 윤년판별 (0) | 2023.04.06 |