자기계발
프로그래머스
PCCE 7번 · 가습기

프로그래머스 · PCCE 기출문제 7번 가습기

문제

가습기에는 "auto", "target", "minimum" 세 모드가 있고 가습량은 0~5단계다. "auto"는 습도 10 단위로 5단계(0 이상 10 미만)부터 0단계(50 이상)까지 내려간다. "target"은 습도가 설정값 미만이면 3단계, 이상이면 1단계다. "minimum"은 설정값 미만이면 1단계, 이상이면 0단계다. 모드 mode_type, 습도 humidity, 설정값 val_set이 주어질 때 현재 단계를 반환하도록 빈칸을 채운다.

풀이

모드별로 함수를 하나씩 두고(func1은 target, func2는 auto, func3은 minimum), solution에서 모드에 맞는 함수를 호출하는 구조다. 문제의 조건식을 읽고 각 빈칸에 들어갈 값과 호출만 채우면 된다.

def func1(humidity, val_set):
    if humidity < val_set:
        return 3
    return 1
 
def func2(humidity):
    if humidity >= 50:
        return 0
    elif humidity >= 40:
        return 1
    elif humidity >= 30:
        return 2
    elif humidity >= 20:
        return 3
    elif humidity >= 10:
        return 4
    else:
        return 5
 
def func3(humidity, val_set):
    if humidity < val_set:
        return 1
    return 0
 
def solution(mode_type, humidity, val_set):
    answer = 0
    if mode_type == "auto":
        answer = func2(humidity)
    elif mode_type == "target":
        answer = func1(humidity, val_set)
    elif mode_type == "minimum":
        answer = func3(humidity, val_set)
    return answer

출처