프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 조건 문자열(Java)

Sigfriede 2023. 5. 15. 01:10

  문제 설명

  문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.

  • 두 수가 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) {
        int answer = 0;
        if (ineq.equals(">")) {
            if (eq.equals("=")) {
                if (n >= m) {
                    answer = 1;
                }
            } else {
                if (n > m) {
                    answer = 1;
                }
            }
        } else {
            if (eq.equals("=")) {
                if (n <= m) {
                    answer = 1;
                }
            } else {
                if (n < m) {
                    answer = 1;
                }
            }
        }
        return answer;
    }
}

  if문을 중첩해서 사용하여 가독성이 좋지는 않습니다. if문에서 ineq를 equals 메소드로 ">"와 같은지 비교합니다. if문에서 eq를 "="와 같은지 비교합니다. if문에서 만약 n이 m보다 크거나 같다면 answer에 1을 할당합니다. else는 eq가 "="와 같지 않은지 확인합니다. n이 m보다 크면 answer에 1을 할당합니다.

  만약 ineq가 ">"와 같지 않은지 확인합니다. eq가 "="와 같은지 확인합니다. n이 m보다 작거나 같다면 answer에 1을 할당합니다. 만약 eq가 "="와 같지 않은지 확인합니다. 만약 n이 m보다 작다면 answer에 1을 할당합니다.