728x90
문제 설명
상우가 사용하는 가습기에는 "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
입출력 예
mode_type | humidity | val_set | result |
"auto" | 23 | 45 | 3 |
"target" | 41 | 40 | 1 |
"minimum" | 10 | 34 | 1 |
문제 해설
함수구문의 역할과 분할의 유용함, 사용법을 물어보는 빈칸체우기 문제이다.
첫 번째 시도
#include <string>
#include <vector>
using namespace std;
int func1(int humidity, int val_set){
if(humidity < val_set)
return [빈칸]3;
return 1;
}
int func2(int humidity){
if(humidity >= 50)
return 0;
else if (humidity >= 40)
return 1;
else if (humidity >= 30)
return 2;
else if (humidity >= 20)
return 3;
else if (humidity >= 10)
return 4;
[빈칸]else if(humidity >= 0)
[빈칸]return 5;
}
int func3(int humidity, int val_set){
if(humidity < val_set)
return 1;
return [빈칸]0;
}
int solution(string mode_type, int humidity, int val_set) {
int answer = 0;
if(mode_type == "auto"){
answer = func[빈칸]2(humidity);
}
else if(mode_type == "target"){
answer = func[빈칸]1(humidity, val_set);
}
else if(mode_type == "minimum"){
answer = func[빈칸]3(humidity, val_set);
}
return answer;
}
성공
728x90
'코딩테스트 문제 풀이' 카테고리의 다른 글
[PCCE 기출문제] 9번 / 이웃한 칸 (0) | 2024.02.26 |
---|---|
[PCCE 기출문제] 8번 / 창고 정리 (0) | 2024.02.26 |
[PCCE 기출문제] 6번 / 가채점 (0) | 2024.02.26 |
[PCCE 기출문제] 5번 / 산책 (0) | 2024.02.26 |
[PCCE 기출문제] 4번 / 저축 (0) | 2024.02.26 |