Header Banner
GG Logo

Future Engineering

기술의 최전선을 기록합니다.

기술 자료/Algorithm/프로그래머스 두 수의 합 문제 풀이

프로그래머스 두 수의 합 문제 풀이

Algorithm5개월 전
function solution(a, b) {
    return String(BigInt(a) + BigInt(b));
}
  • BigInt(a) → 문자열을 정확한 큰 정수(BigInt) 로 변환

  • BigInt(a) + BigInt(b) → 두 큰 숫자를 정확하게 더해요

  • String(...) → 다시 문자열로 변환 (문제 요구 사항)

 

잘못된 풀이

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

❗ 숫자가 2^53보다 커지면 오차가 생깁니다.

JavaScript의 기본 숫자 타입(Number)이 2^53 이상에서는 정밀도를 보장하지 않기 때문이에요。이걸 해결하려면 BigInt를 사용해서 큰 정수 연산을 정확하게 처리해야 합니다.

예시)

const a = "18446744073709551615";
const b = "287346502836570928366";

이 숫자들은 2^53보다 커서 +a + +b 하면 정확한 값이 아닌, 근처 값이 나옵니다. 따라서 String(+a + +b)를 하면 오차가 생깁니다.

 

한 줄 요약

JavaScript의 기본 숫자(Number)에 대한 이해를 요구하는 문제입니다.

정확한 숫자 계산이 중요한 금융, 통계, 데이터 관련 개발에서 중요합니다.

BigInt를 써야 큰 숫자도 정확하게 계산할 수 있습니다. (더 큰 숫자 계산이 필요하고 안정성이 필요하다면 라이브러리도 존재합니다.)