🙌문제설명
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.
☑️나의 풀이
function solution(a, b) {
return Math.max( Number(`${a}${b}`), 2*a*b );
}
function solution(a, b) {
const ab = String(a)+String(b);
return Number(ab) >= (2*a*b) ? Number(ab) : (2*a*b);
}
❓다른 사람 풀이
function solution(a, b) {
let num1 = parseInt(a+""+b);
let num2 = 2*a*b;
return num1 > num2 ? num1 : num2;
}
☑️배운 점
두 방법 모두 학습해놓자! 하고 만족하며 넘어갔는데 또다른 풀이가 나타났을 줄은 몰랐다😢
끝이 없는 세계...
parseInt(문자);
문자를 정수형 숫자로 변환해줌
암시적 형변환
- 연산자 사용 시 피연산자 중 문자열 "" 이 하나라도만 있으면 String Type으로 변환
undefined 나 null도 문자열로 변환된다.
- 연산자를 제외한 산술 연산자(-, /, *, >, < 등) 사용시 Number Type으로 변환
"2" + "2" //22
"2" - "2" //0
"2" * "2" //4
"2" / "2" //1
[0] - 1 //-1
- 숫자 이외의 글자가 들어있는 문자열, 배열 및 undefined 는 숫자 타입으로 변환되지 않고 NaN(Not a Number)을 반환
#출처