프로그래머스 · 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