본문 바로가기

verdantjuly/코딩테스트

프로그래머스 코딩테스트 연습 : 약수의 개수와 덧셈 (20240312, java)

728x90

문제 바로가기: https://school.programmers.co.kr/learn/courses/30/lessons/77884

나의 풀이

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        for(int i= left; i<right+1; i++){
            if(Math.pow(Math.floor(Math.sqrt(i)),2) == i ){
                answer -= i;
            } else {
                answer += i;
            }
        }
        return answer;
    }
}

 

다른 사람의 풀이

class Solution {
    public int solution(int left, int right) {
        int answer = 0;

        for (int i=left;i<=right;i++) {
            //제곱수인 경우 약수의 개수가 홀수
            if (i % Math.sqrt(i) == 0) {
                answer -= i;
            }
            //제곱수가 아닌 경우 약수의 개수가 짝수
            else {
                answer += i;
            }
        }

        return answer;
    }
}

 

소감

 

다양한 연산!