Develop

[프로그래머스] 조건 문자열 본문

개인 공부/프로그래머스

[프로그래머스] 조건 문자열

개발 기록 2024. 1. 17. 16:53

문제

 

내풀이

class Solution {
    public int solution(String ineq, String eq, int n, int m) {
       return (((ineq.equals(">") ? (eq.equals("=")? n>=m : n > m) : (eq.equals("="))? n<=m : n < m))? 1 : 0);
    }
}

 

 

다른 풀이

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관련 예시문제를 풀어봐야겠다

이론을 공부해도 직접 사용하기가 쉽지않아서 문제를 풀어보려고 한다