
내가 생각했을때 문제에서 원하는부분
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
두 수가 n과 m이라면
">", "=" : n >= m
"<", "=" : n <= m
">", "!" : n > m
"<", "!" : n < m
두 문자열 ineq와 eq가 주어집니다.
ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다.
그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.
내가 이 문제를 보고 생각해본 부분
solution 메서드는 주어진 조건 문자열 ineq와 eq 그리고 두 정수 n, m을 인자로 받는다.
먼저 ineq가 "<"인지 ">"인지를 판단한다.
만약 ineq가 "<"일 때, 다시 eq가 "="이면 n <= m 관계를 판단하여 참이면 1, 거짓이면 0을 반환한다.
그렇지 않고 eq가 "!"일 때는 엄격한 부등호 n < m를 판단한다.
반대로 ineq가 ">"이면, eq가 "="인 경우 n >= m인지 확인하여 결과를 1 또는 0으로 반환한다.
eq가 "!"인 경우에는 엄격한 부등호 n > m인지 판단한다.
main 메서드는 인텔리제이에서 실행할 수 있도록 작성했다.
테스트를 간단히 수행하기 위해 예시 입력값으로 solution을 호출하고 출력하는 코드를 넣었다.
출력 결과는 주어진 문제의 예시와 일치하여 올바른 동작을 확인할 수 있다.
코드로 구현
class Solution {
public int solution(String ineq, String eq, int n, int m) {
if(ineq.equals("<")) {
if(eq.equals("=")) {
return n <= m ? 1 : 0;
} else {
return n < m ? 1 : 0;
}
} else {
if(eq.equals("=")) {
return n >= m ? 1 : 0;
}
return n > m ? 1 : 0;
}
}
}
프로그래머스 코드
package programmers;
// 프로그래머스 조건 문자열
public class Main11 {
public static int solution(String ineq, String eq, int n, int m) {
if (ineq.equals("<")) {
if (eq.equals("=")) {
return n <= m ? 1 : 0;
} else {
return n < m ? 1 : 0;
}
} else {
if (eq.equals("=")) {
return n >= m ? 1 : 0;
}
return n > m ? 1 : 0;
}
}
public static void main(String[] args) {
// 테스트를 위해 예시 호출과 출력 코드 추가
System.out.println(solution("<", "=", 20, 50)); // 결과: 1, 20 <= 50 이므로 참이다.
System.out.println(solution(">", "!", 41, 78)); // 결과: 0, 41 > 78 이 아니기 때문이다.
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.