😎풀이

  1. 탐색의 이점을 위한 Set 객체 활용
  2. c의 제곱근 이상의 정수는 계산할 필요 없음
  3. 현재 정수의 제곱과 c의 차가 이미 계산된 적이 있다면, 조합 가능
  4. 어떤 조합으로도 c를 만들지 못할 경우 false 반환
function judgeSquareSum(c: number): boolean {
    const set = new Set()
    const sqrtC = Math.sqrt(c)
    for(let i = 0; i <= sqrtC; i++) {
        const pow = i * i
        set.add(pow)
        const remain = c - pow
        if(set.has(remain)) return true
    }
    return false
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글