-
[알고리즘] 프로그래머스 0단계 - 7번Algorithm 2024. 4. 15. 21:58
프로그래머스 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/250127?language=java문제 설명
상우가 사용하는 가습기에는 "auto", "target", "minimum"의 세 가지 모드가 있습니다. 가습기의 가습량은 0~5단계로 구분되며 각 모드 별 동작 방식은 다음과 같습니다.
상우가 설정한 가습기의 모드를 나타낸 문자열 mode_type, 현재 공기 중 습도를 나타낸 정수 humidity, 설정값을 나타낸 정수 val_set이 주어질 때 현재 가습기가 몇 단계로 작동 중인지 return하도록 빈칸을 채워 solution 함수를 완성해 주세요.
"auto" 모드
습도가 0 이상 10 미만인 경우 : 5단계
습도가 10 이상 20 미만인 경우 : 4단계
습도가 20 이상 30 미만인 경우 : 3단계
습도가 30 이상 40 미만인 경우 : 2단계
습도가 40 이상 50 미만인 경우 : 1단계
습도가 50 이상인 경우 : 0단계"target" 모드
습도가 설정값 미만일 경우 : 3단계
습도가 설정값 이상일 경우 : 1단계"minimum"모드
습도가 설정값 미만일 경우 : 1단계
습도가 설정값 이상일 경우 : 0단계class Solution { // 타겟모드 메서드 public int func1(int humidity, int val_set){ if(humidity < val_set) return 3; // 습도가 설정값 미만일 경우 : 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; // 습도가 0 이상 10 미만인 경우 : 5단계 // 여기서 습도 0미만일 경우 예외 처리가 없다. } // 미니멈모드 메서드 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); // 메서드 2 } else if(mode_type.equals("target")){ answer = func1(humidity, val_set); // 메서드 1 } else if(mode_type.equals("minimum")){ answer = func3(humidity, val_set); // 메서드 3 } // 없는 모드 타입일 경우 예외처리 return answer; } }
기존에 작성된 코드를 봤을때 마찬가지로 메서드명이 func1,2,3은 문제라서 읽기 어렵게하려고 만든 것 같다.
코드에서 문제가 될만한 점
1. 오토모드에서 0이하일경우 예외처리가 없다.
2. 모드타입이 3가지중에 해당되지않을경우 예외 처리가 없다.
'Algorithm' 카테고리의 다른 글
[묘공단] 코딩 테스트 합격자 되기 - 스택, 큐 (0) 2024.04.17 [알고리즘] 프로그래머스 0단계 - 6번 (0) 2024.04.16 [묘공단] 코딩 테스트 합격자 되기 챕터 1 ~ 5 (0) 2024.04.14 [알고리즘] 프로그래머스 0단계 - 8번 (0) 2024.04.12