[프로그래머스] 숫자 블록

쿼카쿼카·2024년 1월 27일
0

알고리즘

목록 보기
67/67

문제

코드

function solution(begin, end) {
    const ans = []

    for(let i=begin; i<=end; i++) {
        ans.push(calculate(i))
    }

    return ans;
}

function calculate(n) {
    if(n === 1) return 0;
    const result = [];
    
    for(let i=2; i <= Math.sqrt(n); i++) {
        if(!(n%i)) {
            result.push(i);
            if(n/i <= 10000000) return n/i;
        }
    }
    
    return result.length ? result[result.length-1] : 1;
}

풀이

  • 제한이 10,000,000라는 것을 간과하고 있다가 계속 실패했다.(저런 거 좀 빨간 글씨 h1으로 좀 써놔라ㅡㅡ)

약수를 구하는 공식

  • 자주 나오는 약수 구하는 방법
  • 모든 수 다 따지거나 절반까지 따져도 시간초과 나는 경우가 많다.
  • 제곱근 까지의 약수를 구하면 모든 약수를 구할 수 있다. 이런 거 중딩 때좀 알려주지 ㅉㅉ
  • 문제 자체는 간단하고 쉬워서 이런 문제는 코테에 안 나오면 좋겠다. 왜냐면 난 틀렸기 때문이다.
profile
쿼카에요

0개의 댓글