프로그래머스 · 각도기
문제
0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각, 180도는 평각이다. 정수 angle(0 < angle ≤ 180)이 주어질 때 예각이면 1, 직각이면 2, 둔각이면 3, 평각이면 4를 반환한다.
풀이
기본값을 1(예각)로 두고, 직각 · 둔각 · 평각일 때만 조건문으로 값을 바꾼다. 세 경우가 아니면 예각이므로 1이 그대로 반환된다.
def solution(angle):
answer = 1
if angle == 90:
answer = 2
elif angle > 90 and angle < 180:
answer = 3
elif angle == 180:
answer = 4
return answer짚고 갈 점
이 문제의 조건은 직각과 평각이 단일 값이라 조건문 순서가 크게 중요하지 않다. 하지만 구간 범위로 조건을 나눌 때는 순서에 따라 결과가 달라질 수 있다.
# 올바른 예시
age = 16
if age < 13:
print("어린이")
elif age >= 13 and age < 20:
print("청소년")
else:
print("성인")
# 잘못된 예시
age = 16
if age >= 13:
print("청소년")
elif age < 13:
print("어린이")
else:
print("성인")잘못된 예시는 age >= 13을 먼저 검사하므로 성인에 해당하는 나이도 "청소년"으로 출력된다.