잡다한 배똥월드

728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

코딩테스트 연습 - 약수의 합

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수

programmers.co.kr

 

 

 

 

 

class Solution {
    fun solution(n: Int): Int {
        var answer = 0
       	var arr = IntArray(n+1){0};
        
        for (i in 1..n) {
            if (arr[i] != 0) continue;
        
            if (n % i == 0) {
                arr[i] = 1;
                arr[n / i] = 1;
            }
        }
        
        for (i in 1..n) {
            if (arr[i] == 1) answer += i;
        }
        
        return answer
    }
}

 

테스트 1 통과 (0.01ms, 64MB)
테스트 2 통과 (0.01ms, 64.8MB)
테스트 3 통과 (0.06ms, 64.2MB)
테스트 4 통과 (0.03ms, 64.1MB)
테스트 5 통과 (0.09ms, 63.5MB)
테스트 6 통과 (0.05ms, 65.6MB)
테스트 7 통과 (0.14ms, 63.3MB)
테스트 8 통과 (0.04ms, 63.8MB)
테스트 9 통과 (0.20ms, 62.2MB)
테스트 10 통과 (0.15ms, 63.8MB)
테스트 11 통과 (0.11ms, 63.7MB)
테스트 12 통과 (0.13ms, 63.4MB)
테스트 13 통과 (0.02ms, 64.3MB)
테스트 14 통과 (0.12ms, 63.2MB)
테스트 15 통과 (0.12ms, 63.1MB)
테스트 16 통과 (0.01ms, 63.2MB)
테스트 17 통과 (0.16ms, 62.7MB)

 

 

 

 

숫자로 나눠서 나머지가 0인 숫자와 그 몫을 더해주면 됨.

 

 

 

 

 

728x90

+ Recent posts