개발로그필름

[프로그래머스/JS] 더 크게 합치기 본문

coding test/프로그래머스

[프로그래머스/JS] 더 크게 합치기

yuullog 2023. 11. 19. 15:27
728x90
반응형
SMALL

https://school.programmers.co.kr/learn/courses/30/lessons/181939

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

이번 문제는 쫌 쉬웠다!ㅎㅅㅎ

정수를 문자열로 바꿔서 합치고, 또 다시 정수로 바꿔서 return을 하는 방법이 맞나...?

좀 더 쉽고 빠른 코드가 있지 않을까 생각은 들었지만

도저히 다른 대안이 나오지 않아서,,

 

function solution(a, b) {
    const a_string = a.toString();
    const b_string = b.toString();
    const ab = parseInt(a_string + b_string);
    const ba = parseInt(b_string + a_string);
    if (ab < ba){
        return ba;
    } else {
        return ab;
    }    
}

 

 

다른 사람의 풀이를 보고 감명을 받아,,

여기에도 좀 적어보자면

function solution(a, b) {
    return Math.max(Number(`${a}${b}`), Number(`${b}${a}`))
}

깔끔하게 한 줄로 끝내버리신 고수님.. 진짜 존경스럽고 폼 미쳤다

 

Math.max()

입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자 반환

console.log(Math.max(1, 3, 2));
// 3

 

Number()
Number("123");  // 123
Number("123") === 123;  // true

Numer("unicorn")   // NaN
Number(undefined);  // NaN

 

${}

연산자를 사용하여 연결하지 않고 문자열 내에 변수를 중첩할 수 있는 기능  ::  문자열로 만들어주는 기능

 

따라서 고수님이 푼 방법은,,

${}로 a,b와 b,a를 문자열로 만들어 Number로 정수 변환 후 Math.max()로 크기 비교를 하신 것이다!!

 

 

반응형
LIST
Comments