97-1. 조건 문자열

박은서's avatar
Mar 12, 2026
97-1. 조건 문자열
2026.03.12(THU)_97일차

1. 문제

문제 설명

문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
  • 두 수가 n과 m이라면
    • ">", "=" : n >= m
    • "<", "=" : n <= m
    • ">", "!" : n > m
    • "<", "!" : n < m
두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.

제한 사항

  • 1 ≤ nm ≤ 100

입출력 예

ineq
eq
n
m
result
"<"
"="
20
50
1
">"
"!"
41
78
0

입출력 예 설명

입출력 예 #1
  • 20 <= 50은 참이기 때문에 1을 return합니다.
입출력 예 #2
  • 41 > 78은 거짓이기 때문에 0을 return합니다.

※ 2023.05.31 테스트 케이스가 수정되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.

2. 풀이

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

3. 다른 사람의 풀이

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; } }
 
Share article