[LeetCode] 279. Perfect Squares, Medium

2025. 4. 2. 14:03·CodingTest/LeetCode
반응형

1. 문제

  • 정수 n이 주어질 때, 완전 제곱수의 합으로 만들 수 있는 최소 개수를 반환하라.

2. 해결

function numSquares(n: number): number {
    const queue:[number, number][] = [[n, 0]];
    const visit = new Set();
    
    while(queue.length > 0) {
        const [curr, step] = queue.shift();
        
        const sqrt = Math.floor(Math.sqrt(curr));
        
        for(let i = sqrt; i > 0; i--){
            const next = curr - i * i;
            
            if(next === 0) return step +1;
            
            if(!visit.has(next)) {
                visit.add(next);
                queue.push([next, step+1])
            }
        }
    }
    
    return -1;
};
  • 못 풀었다. 인접 노드를 어떻게 가져가야 할 지..
  • 원리는 큐에 n과 횟수를 짝지어 넣고, n의 제곱근 부터 0보다 클 때 까지 줄여 나가면서 0이 되는 구간을 찾는다.
저작자표시 (새창열림)
'CodingTest/LeetCode' 카테고리의 다른 글
  • [LeetCode] 20. Valid Parentheses, Easy
  • [LeetCode] 155. Min Stack, Medium
  • [LeetCode] 752. Open the Lock, Medium
  • [LeetCode] 200. Number of Islands, Medium
뜸부깅
뜸부깅
코딩에 대한 여러 개인적인 생각을 정리하고 공부를 하는 공간입니다!!
  • 뜸부깅
    코오오딩
    뜸부깅
  • 전체
    오늘
    어제
    • Note (429)
      • Skill (31)
        • Java & Spring (9)
        • Javascript & HTML & CSS (0)
        • React (0)
        • Next.js (22)
      • CodingTest (389)
        • 백준 온라인 저지(BOJ) (140)
        • 프로그래머스(Programmers) (79)
        • LeetCode (170)
      • Algorithm & Data Structure (6)
      • [Project] 포트폴리오 (3)
        • Front end (3)
        • Back end (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    Java
    Easy
    medium
    백준2751
    next 14
    BOJ
    백준7576자바
    알고리즘
    백준1260
    meidum
    leetcode 2236
    백준1427
    TypeScript
    자바
    boj2108
    백준7576
    백준
    boj1427
    component-scan
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜸부깅
[LeetCode] 279. Perfect Squares, Medium
상단으로

티스토리툴바