본문 바로가기
강좌/PCCE 기출문제(파이썬)

[PCCE 기출문제][파이썬] 7. 가습기

by Moons0827 2024. 8. 26.
반응형

문제는 아래에서 풀어 볼 수 있습니다.

코딩테스트 연습 - [PCCE 기출문제] 7번 / 가습기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문 제

상우가 사용하는 가습기에는 "auto", "target", "minimum"의 세 가지 모드가 있습니다. 가습기의 가습량은 0~5단계로 구분되며 각 모드 별 동작 방식은 다음과 같습니다.

"auto" 모드

습도가 0 이상 10 미만인 경우 : 5단계
습도가 10 이상 20 미만인 경우 : 4단계
습도가 20 이상 30 미만인 경우 : 3단계
습도가 30 이상 40 미만인 경우 : 2단계
습도가 40 이상 50 미만인 경우 : 1단계
습도가 50 이상인 경우 : 0단계
"target" 모드

습도가 설정값 미만일 경우 : 3단계
습도가 설정값 이상일 경우 : 1단계
"minimum"모드

습도가 설정값 미만일 경우 : 1단계
습도가 설정값 이상일 경우 : 0단계
상우가 설정한 가습기의 모드를 나타낸 문자열 mode_type, 현재 공기 중 습도를 나타낸 정수 humidity, 설정값을 나타낸 정수 val_set이 주어질 때 현재 가습기가 몇 단계로 작동 중인지 return하도록 빈칸을 채워 solution 함수를 완성해 주세요.


제한 사항

mode_type은 "auto", "target", "minimum" 세 가지 중 하나의 값을 갖습니다.
0 ≤ humidity, val_set ≤ 100


입출력 예

입출력 예 #1
"auto"모드이므로 습도에 따라 가습량이 조절됩니다. 현재 습도가 20 이상 30 미만이므로 3을 return합니다.

입출력 예 #2
"target"모드이고, 설정값보다 습도가 높으므로 1을 return합니다.

입출력 예 #3
"minimum"모드이고, 설정값보다 습도가 낮으므로 1을 return합니다.


주어진 코드

def func1(humidity, val_set):
    if humidity < val_set:
        return 
    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
    


def func3(humidity, val_set):
    if humidity < val_set:
        return 1
    return 

def solution(mode_type, humidity, val_set):
    answer = 0
    if mode_type == "auto":
        answer = func
    elif mode_type == "target":
        answer = func
    elif mode_type == "minimum":
        answer = func
    return answer

정 답

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  
    elif humidity >= 0:      
        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

해 설

1. 1~4줄: 두 개의 매개변수 humidity와 val_set을 받아. 조건문( humidity 값이 val_set보다 작으면 )이 참이면 3을 반환하고, 거짓일 경우 1을 반환합니다.

2.  6~18줄: 1개의 매개변수 humidity를 받아, humidity 값이 50이상이면 0을 반환,  humidity 값이 50 미만이지만 40이상이면 1을 반환, humidity 값이 40 미만이지만 30이상이면 2를 반환, humidity 값이 30 미만이지만 20이상이면 3을 반환,  humidity 값이 20 미만이지만 10이상이면 4를 반환, humidity 값이 10 미만이지만 0이상이면 5를 반환합니다.

3. 20~23줄: 두 개의 매개변수 humidity와 val_set을 받아. 조건문( humidity 값이 val_set보다 작으면 )이 참이면 1을 반환하고, 거짓일 경우 0을 반환합니다.

4. 25줄: 세 개의 매개변수 mode_type, humidity, val_set을 받습니다.

5. 26줄: 변수 answer를 0으로 초기화합니다.

6. 27~33줄: mode_type이 "auto"일 경우, func2(humidity)를 호출하고 그 결과값을 answer에 저장합니다.
mode_type이 "target"일 경우, func1(humidity, val_set)를 호출하고 그 결과값을 answer에 저장합니다.
mode_type이 "minimum"일 경우, func3(humidity, val_set)를 호출하고 그 결과값을 answer에 저장합니다.

마지막으로 answer 값을 반환합니다.

 



반응형

댓글