조건 문자열

도비김·2024년 2월 22일
0
문제 설명

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

  • 두 수가 nm이라면
    • ">", "=" : n >= m
    • "<", "=" : n <= m
    • ">", "!" : n > m
    • "<", "!" : n < m

두 문자열 ineqeq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 nm이 주어질 때, nmineqeq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.


제한 사항
  • 1 ≤ n, m ≤ 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 테스트 케이스가 수정되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.

solution

function solution(ineq, eq, n, m) {
    return eq==='=' ? (eval(`${n}${ineq}${eq}${m}`)? 1 : 0 ) : (eval(`${n}${ineq}${m}`)? 1 : 0);
}

eval()은 사용하면 안되나보다... ㅠ

다른풀이

if (eq === '=' && n === m) return 1
if (ineq === '<' && n < m) return 1
if (ineq === '>' && n > m) return 1
return 0

const operations = {
  '>=': (n, m) => n >= m,
  '<=': (n, m) => n <= m,
  '>!': (n, m) => n > m,
  '<!': (n, m) => n < m,
};

function solution(ineq, eq, n, m) {
  const op = operations[ineq + eq];
  return Number(op(n, m));
}
profile
To Infinity, and Beyond!

0개의 댓글