[JavaScript] Lv0 - 조건 문자열

Moon·2024년 11월 26일
0
post-thumbnail

조건 문자열

문제 설명

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

  • 두 수가 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

입출력 예

ineqeqnmresult
"<""="20501
">""!"41780

입출력 예 설명

입출력 예 #1

  • 20 <= 50은 참이기 때문에 1을 return합니다.

입출력 예 #2

  • 41 > 78은 거짓이기 때문에 0을 return합니다.

function solution(ineq, eq, n, m) {
    if (ineq === ">" && eq === "=") return n >= m ? 1 : 0;
    if (ineq === "<" && eq === "=") return n <= m ? 1 : 0;
    if (ineq === ">" && eq === "!") return n > m ? 1 : 0;
    if (ineq === "<" && eq === "!") return n < m ? 1 : 0;
    return 0;
}

코드 설명

  1. 조건별 비교
    • ineqeq에 따라 네 가지 조건을 처리합니다:
      • ineq === ">"eq === "=": n >= m
      • ineq === "<"eq === "=": n <= m
      • ineq === ">"eq === "!": n > m
      • ineq === "<"eq === "!": n < m
  2. 삼항 연산자를 사용한 참/거짓 반환
    • 각 조건에서 nm을 비교하여 조건이 참이면 1, 거짓이면 0을 반환합니다.
  3. 결과 반환
    • 모든 조건이 만족되지 않는 경우 0을 반환합니다.

입출력 예 설명

입출력 예 #1

ineq = "<", eq = "=", n = 20, m = 50
  • 조건: n <= m20 <= 50은 참이므로 결과는 1.

입출력 예 #2

ineq = ">", eq = "!", n = 41, m = 78
  • 조건: n > m41 > 78은 거짓이므로 결과는 0.

대안 코드: 객체를 사용한 처리

function solution(ineq, eq, n, m) {
    const conditions = {
        ">=": (a, b) => a >= b,
        "<=": (a, b) => a <= b,
        ">!": (a, b) => a > b,
        "<!": (a, b) => a < b,
    };
    return conditions[ineq + eq](n, m) ? 1 : 0;
}

장점

  • 조건 처리를 객체에 정의하여 가독성을 높이고, 유지보수를 용이하게 만듭니다.
profile
MOON.DEVLOG

0개의 댓글