[codingTest] 프로그래머스 - 더 크게 합치기

Suzy Lee·2023년 5월 13일
0

Frontend

목록 보기
12/32

📖 들어가며

이제 자바스크립트 기초문법을 강의와 함께 프로그래머스에서 제공하는 "코딩기초트레이닝"을 3일전부터 꾸준히 해보고 있습니다. 앞으로도 코딩기초트레이닝 문제를 매일 풀어서, 배운문법들을 잘 활용하여 제 것으로 얼른 만들고싶어요..! 기초문제 다 풀고 높은 단계 레벨들도 술술 해결해나가는날을 오리라 기대합니다.

풀고나서, 다른 사람들의 풀이 참고해보는데 오늘 푼 문제 중 이 문제에서 유독 제 코드가 가장 긴 것 같아서, 이 문제를 남겨보려고 합니다.

🔒 문제

문제 설명

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

  • 12 ⊕ 3 = 123
  • 3 ⊕ 12 = 312

    양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.

    단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.

제한사항

  • 1 ≤ a, b < 10,000
    입출력 예

입출력 예 설명
입출력 예 #1

  • a ⊕ b = 991 이고, b ⊕ a = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.

입출력 예 #2

  • a ⊕ b = 898 이고, b ⊕ a = 889 입니다. 둘 중 더 큰 값은 898 이므로 898을 return 합니다.

🔑 나의 풀이

function solution(a, b) {
    let result = 0
    let abString = String(a) + String(b)
    let baString = String(b) + String(a)
    let abNum = Number(abString)
    let baNum = Number(baString)   
    if(abNum >= baNum) {result = abNum}
    else result = baNum
    return result    
}

🔎 다른 사람 풀이

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

🤓 깨달은 점

매개변수 a,b가 문자열로 더한 후, 숫자의 값으로써 비교하는 문제입니다.

String으로 우선 만들어야겠다.. 는 생각으로 저렇게 사용했는데,
다른 사람의 풀이를 보니, 백틱을 사용해서 문자열로 만들어 불필요한 String 매서드의 반복을 피할 수 있구나.. 라는 것을 알 수 있었습니다.

또한, Math.max 매서드를 사용하면, if else 문을 사용하지 않고 간단하게 크기 비교 할 수 있다는 것도 알게 되었습니다.

profile
고통 속에 무언가 탄생하고 있다:-)

0개의 댓글