문제
내가 작성한 정답
class Solution {
public int solution(String ineq, String eq, int n, int m) {
int answer = 0;
if(eq.equals("!")){
if(n>m) return ineq.equals(">")?1:0;
if(n<m) return ineq.equals("<")?1:0;
}else{
if(n==m) return 1;
else if(n>m) return ineq.equals("<")?0:1;
else return ineq.equals(">")?0:1;
}
return answer;
}
}
한 줄로 줄이기
class Solution {
public int solution(String ineq, String eq, int n, int m) {
return (eq.equals("!")?(ineq.equals(">")?n>m:n<m):(ineq.equals(">")?n>=m:n<=m))?1:0;
}
}
다른 사람들의 정답
Map.of로 함수 만들기
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;
}
}
삼항연산자
class Solution {
public int solution(String ineq, String eq, int n, int m) {
return (">".equals(ineq) ? n > m : n < m) || ("=".equals(eq) ? n == m : false) ? 1 : 0;
}
}
switch
class Solution {
public int solution(String ineq, String eq, int n, int m) {
boolean answer = false;
switch(eq) {
case "!":
switch(ineq) {
case "<":
answer = n < m;
break;
case ">":
answer = n > m;
break;
}
break;
case "=":
switch(ineq) {
case "<":
answer = n <= m;
break;
case ">":
answer = n >= m;
break;
}
break;
}
return answer?1:0;
}
}
Share article