| 문제
정수 num1과 num2가 매개변수로 주어집니다.
두 수가 같으면 1 다르면 -1을 return 하도록 solution 함수를 완성해주세요.
| 제한사항
0 ≤ num1 ≤ 10,000
0 ≤ num2 ≤ 10,000
| 입출력 예
num1 | num2 | result |
2 | 3 | -1 |
11 | 11 | 1 |
7 | 99 | -1 |
| 풀이1
public int solution01(int num1, int num2) {
int answer = -1;
if(num1 == num2) answer = 1;
return answer;
}
| 풀이2
public int solution02(int num1, int num2) {
return num1 == num2 ? 1 : -1;
}
| 해설
if~else 조건문과 삼항연산자를 모두 적용할 수 있는 문제예요.
삼항연산자는 참 설명하기가 힘든 개념입니다.
조건문의 개념을 알지 못해서 어려워하나 싶어서 if문 다음에 설명하면
어떻게든 if문으로 문제를 해결하려고 하고,
조건문 배우기 전에 연산자에서 설명을 하면
아예 true, false의 개념을 이해하지 못하더라고요.
전자가 더 나은 것 같아서 조건문 다음에 설명하고 있습니다.
아주 쉽게 말씀드리면 조건식의 결과가 boolean 타입이어야 하는 것은 같지만
if~else문은 조건이 true 또는 false일 때 수행할 행위를 규정하는 문법이고
삼항 연산자는 조건이 true 또는 false일때 값을 규정하는 문법입니다.
"true일 때 춤을 추세요."라는 문장은 if~else,
"true일때 당신이 추게 될 춤은 삼바입니다."는 삼항연산자의 뉘앙스예요.
참 쉽죠?
댓글