[알고리즘문제풀기] 조건 문자열

silver's avatar
May 05, 2025
[알고리즘문제풀기] 조건 문자열

문제

내가 작성한 정답

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

silver