자기계발
프로그래머스
각도기

프로그래머스 · 각도기

문제

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을 먼저 검사하므로 성인에 해당하는 나이도 "청소년"으로 출력된다.

출처