코딩테스트 연습 > 코딩 기초 트레이닝 > 조건 문자열
조건 문자열
문제 설명
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
두 수가 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 ≤ n, m ≤ 100
입출력 예
ineq | eq | n | m | result |
"<" | "=" | 20 | 50 | 1 |
">" | "!" | 41 | 78 | 0 |
class Solution {
public int solution(String ineq, String eq, int n, int m) {
boolean result;
if (eq.equals("=")) {
if(ineq.equals(">")){
result = n >= m;
}else{
result = n <= m;
}
} else {
if(ineq.equals(">")){
result = n > m;
}else{
result = n < m;
}
}
return result ? 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;
}
}
BiFunction
: Java의 함수형 인터페이스(Functional Interface) 로 두 개의 인수를 받아들이고 결과를 반환하는 함수를 나타냄. 이름에서 알 수 있듯 "Bi"는 두 개의 인수를 의미하며, "Function"은 함수.
사용예시
@FunctionalInterface
public interface BiFunction<T, U, R> {
R apply(T t, U u);
}
- T: 첫 번째 입력 매개변수의 유형을 나타냅니다.
- U: 두 번째 입력 매개변수의 유형을 나타냅니다.
- R: 결과의 유형을 나타냅니다.
따라서 BiFunction은 apply 메서드를 통해 두 개의 입력을 받아들이고 결과를 반환합니다. 이는 함수형 프로그래밍에서 매우 유용하며, 주로 두 개의 값에 대한 변환 또는 연산을 수행하는 데 사용됩니다.
예를 들어, (a, b) -> a + b는 두 개의 정수를 받아들여 그 합을 반환하는 BiFunction입니다. 이를 사용하여 biFunction.apply(3, 5)를 호출하면 결과로 8을 반환합니다.
'Chapter01 > 고딩데스드' 카테고리의 다른 글
[고딩데스드] 문자열 정수의 합 (2) | 2024.04.19 |
---|---|
[고딩데스드] 코드 처리하기 (0) | 2024.04.16 |
[고딩데스드] 프로그래머스 중복된 숫자 개수, 최빈값 구하기 (0) | 2024.04.11 |
[고딩데스드] 입문배열 원소의 길이 (0) | 2024.04.01 |
[고딩데스드] 홀짝에 따라 다른 값 반환하기 (2) | 2023.12.26 |