프로그래머스 - 두 수의 합

Lellow_Mellow·2023년 4월 20일
1
post-thumbnail

⭐ Lv. 0 - 두 수의 합

✅ 문제 설명

0 이상의 두 정수가 문자열 a, b로 주어질 때, a + b의 값을 문자열로 return 하는 solution 함수를 작성해 주세요.


✅ 제한사항

  • 1 ≤ a의 길이 ≤ 100,000
  • 1 ≤ b의 길이 ≤ 100,000
  • ab는 숫자로만 이루어져 있습니다.
  • ab는 정수 0이 아니라면 0으로 시작하지 않습니다.

✅ 입출력 예

abresult
"582""734""1316"
"18446744073709551615""287346502836570928366""305793246910280479981"
"0""0""0"

입출력 예 #1

  • 예제 1번의 a, b는 각각 582, 734이고 582 + 734 = 1316입니다. 따라서 "1316"을 return 합니다.

입출력 예 #2

  • 예제 2번의 a, b는 각각 18446744073709551615, 287346502836570928366이고 18446744073709551615 + 287346502836570928366 = 305793246910280479981입니다. 따라서 "305793246910280479981"을 return 합니다.

입출력 예 #3

  • 예제 3번의 a, b는 각각 0, 0이고 0 + 0 = 0입니다. 따라서 "0"을 return 합니다.

✅ 풀이 코드 + 설명

단순히 문자열로 입력받은 숫자를 더해서 그 결과를 문자열로 변환해 return 하면 되는 문제입니다. 다만, 제한사항을 잘 살펴보면 a, b의 길이가 심상치 않습니다.

자바스크립트에서의 Number 타입은 64비트 형식의 IEEE-754표준을 따릅니다. 따라서 유효범위는 -9007199254740991 ~ 9007199254740991 입니다. 하지만, 입력값으로 받는 a, b는 해당 유효범위보다 훨씬 큰 값으로 주어질 수 있습니다. 이를 위해서 BigInt를 사용해 다음과 같이 풀이하였습니다.

function solution(a, b) {
    return String(BigInt(a) + BigInt(b));
}

profile
잔잔한 물결에서 파도로, 도약을 위한 도전. 함께하는 성장

0개의 댓글