상우가 사용하는 가습기에는 "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 함수를 완성해 주세요.
테스트 (인텔리제이)
첫 번째 빈칸은 습도가 설정 값보다 이상일 경우 1을 반환합니다.
그렇기 때문에 첫 번째 빈칸의 if문은 target을 의미하기 때문에 3을 넣어야 하고
두 번째와 세 번째 빈칸은 다양한 조건이 있는걸로 봐서 auto인 것을 알 수 있고
if문과 else if문에서 이미 필요한 조건이 다 걸려 있기 때문에 else문을 넣으면 되고 return 5를 해주면 됩니다.
네 번째 빈칸은 마지막 남은 minimum을 의미하기 때문에 0을 넣어주면 되고
5,6,7 번째 빈칸들은 if문의 비교 값에 해당하는 func 번호와 파라미터 값을 넣어주면 됩니다.
package com.example.codingtest;
public class PCCE_기출문제_7번_가습기 {
public static void main(String[] args) {
/*
문자열 mode_type과 정수 humidity와 val_set이 매개변수로 주어집니다.
상우가 사용하는 가습기에는 "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 humidity val_set result
"auto" 23 45 3
"target" 41 40 1
"minimum" 10 34 1
입출력 설명
#1
"auto"모드이므로 습도에 따라 가습량이 조절됩니다.
현재 습도가 20 이상 30 미만이므로 3을 return합니다.
#2
"target"모드이고, 설정값보다 습도가 높으므로 1을 return합니다.
#3
"minimum"모드이고, 설정값보다 습도가 낮으므로 1을 return합니다.
cpp를 응시하는 경우 리스트는 배열과 동일한 의미이니 풀이에 참고해주세요.
ex) 번호가 담긴 정수 리스트 numbers가 주어집니다.
=> 번호가 담긴 정수 배열 numbers가 주어집니다.
java를 응시하는 경우 리스트는 배열, 함수는 메소드와 동일한 의미이니 풀이에 참고해주세요.
ex) solution 함수가 올바르게 작동하도록 한 줄을 수정해 주세요.
=> solution 메소드가 올바르게 작동하도록 한 줄을 수정해 주세요.
*/
String mode_type = "minimum";
int humidity = 10;
int val_set = 34;
Solution solution = new Solution();
int answer = solution.solution(mode_type, humidity, val_set);
System.out.println(answer);
}
}
class Solution {
public int func1(int humidity, int val_set){
if(humidity < val_set)
return 3; // 빈칸
return 1;
}
public 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 // 빈칸
return 5; // 빈칸
}
public int func3(int humidity, int val_set){
if(humidity < val_set)
return 1;
return 0; // 빈칸
}
public int solution(String mode_type, int humidity, int val_set) {
int answer = 0;
if(mode_type.equals("auto")){
answer = func2(humidity); // 빈칸
}
else if(mode_type.equals("target")){
answer = func1(humidity, val_set); // 빈칸
}
else if(mode_type.equals("minimum")){
answer = func3(humidity, val_set); // 빈칸
}
return answer;
}
}
프로그래머스 코드
class Solution {
public int func1(int humidity, int val_set){
if(humidity < val_set)
return 3;
return 1;
}
public 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
return 5;
}
public int func3(int humidity, int val_set){
if(humidity < val_set)
return 1;
return 0;
}
public int solution(String mode_type, int humidity, int val_set) {
int answer = 0;
if(mode_type.equals("auto")){
answer = func2(humidity);
}
else if(mode_type.equals("target")){
answer = func1(humidity, val_set);
}
else if(mode_type.equals("minimum")){
answer = func3(humidity, val_set);
}
return answer;
}
}