[문제]
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
- 두 수가 n과 m이라면
- ">", "=" : n >= m
- "<", "=" : n <= m
- ">", "!" : n > m
- "<", "!" : n < m
두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.
[내 풀이]
class Solution {
public int solution(String ineq, String eq, int n, int m) {
String cal = String.valueOf(ineq)+String.valueOf(eq);
int answer = 0;
if( cal.equals(">=")){
answer = (n >=m )? 1 : 0;
} else if( cal.equals("<=")){
answer = (n <= m)? 1: 0;
} else if( cal.equals(">!")){
answer = (n > m)? 1 : 0;
} else if( cal.equals("<!")){
answer = (n < m)? 1 : 0;
}
return answer;
}
}
* 자바에서 문자열 비교시, == 연산자가 아닌, equals()함수 사용하기
[다른 사람 풀이]
import java.util.Map;
import java.util.function.BiFunction;
class Solution {
public int solution(String ineq, String eq, int n, int m) {
Map<String, BiFunction<Integer, Integer, Boolean>> functions = Map.of(
">=", (a, b) -> a >= b,
"<=", (a, b) -> a <= b,
">!", (a, b) -> a > b,
"<!", (a, b) -> a < b
);
return functions.get(ineq + eq).apply(n, m) ? 1 : 0;
}
}
- Map (key를 통해 value 찾아냄) 사용 !
'개발 > 코테' 카테고리의 다른 글
[JAVA] 이어 붙인 수 (0) | 2024.04.11 |
---|---|
[JAVA] 주사위게임2 (0) | 2024.04.05 |
[JAVA] 홀짝에 따라 다른 값 반환하기 (0) | 2024.04.04 |
[JAVA] 공배수 (0) | 2024.04.04 |
[JAVA] 두 수의 연산값 비교하기 (0) | 2024.04.04 |