문제설명
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
- 두 수가 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
입출력 예
ineqeqnmresult
ineq | eq | n | m | result |
"<" | "=" | 20 | 50 | 1 |
">" | "!" | 41 | 78 | 0 |
입출력 예 설명
입출력 예 #1
20 <= 50은 참이기 때문에 1을 return합니다.
입출력 예 #2
41 > 78은 거짓이기 때문에 0을 return합니다.
풀이
JAVA
class Solution {
public int solution(String ineq, String eq, int n, int m) {
int answer = 0;
String str = ineq + eq;
if (str.equals(">=")) {
if (n>=m) answer = 1;
else answer = 0;
}
else if (str.equals("<=")) {
if(n<=m) answer = 1;
else answer = 0;
}
else if (str.equals(">!")) {
if (n > m) answer = 1;
else answer = 0;
}
else if (str.equals("<!")) {
if (n < m) answer = 1;
else answer = 0;
}
return answer;
}
}
Python
def solution(ineq, eq, n, m):
if ineq == '<':
if eq == '=':
if n <= m:
return 1
else:
return 0
else:
if n < m:
return 1
else:
return 0
else:
if eq == '=':
if n >= m:
return 1
else:
return 0
else:
if n > m:
return 1
else:
return 0
*한줄 코딩
def solution(ineq, eq, n, m):
return int(eval(str(n)+ineq+eq.replace('!', '')+str(m)))
JS
function solution(ineq, eq, n, m) {
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));
}
'프로그래머스 Lv.0' 카테고리의 다른 글
Lv.0 등차수열의 특정한 항만 더하기 (0) | 2025.01.24 |
---|---|
Lv.0 flag에 따라 다른 값 반환하기 (0) | 2025.01.23 |
Lv.0 홀짝에 따라 다른 값 반환하기 (0) | 2025.01.22 |
Lv.0 공배수 (0) | 2025.01.22 |
Lv.0 n의 배수 (0) | 2025.01.21 |