프로그래머스 연습문제 숫자블록 [JAVA] - 22년 11월 3일

Denia·2022년 11월 3일
0

코딩테스트 준비

목록 보기
109/201
post-custom-banner
import java.util.ArrayList;
import java.util.List;

// https://deok2kim.tistory.com/123 정답 코드 참고
// 블럭의 한계가 있다는 것을 확인하지 못했음

class Solution {
    final int BLOCK_LIMIT = 10_000_000;

    public Integer[] solution(long begin, long end) {
        List<Integer> answerList = new ArrayList<Integer>(10000);

        for (int value = (int) begin; value <= end; value++) {
            if (value == 1) {
                answerList.add(0);
            } else {
                int gcd = getGcd(value);

                answerList.add(gcd);
            }
        }

        return answerList.toArray(new Integer[0]);
    }

    //Greatest Common Divisor
    private int getGcd(int value) {
        for (int i = 2; i <= Math.sqrt(value); i++) {
            if (value % i == 0) {
                int divideValue = value / i;

                if (divideValue <= BLOCK_LIMIT) {
                    return divideValue;
                }
            }
        }

        return 1;
    }
}

profile
HW -> FW -> Web
post-custom-banner

0개의 댓글