-
약수의 합프로그래밍/코딩테스트연습 2023. 11. 9. 15:38
class Solution { public int solution(int n) { if(0>n || n>3000) { return 0; } int answer = 0; for (int i= 1; i <= n; i++) { if( n % i == 0 ) answer += i; } return answer; } }
하지만 n이 최대치인 3000일 경우 실행이 너무 느리지 않을까 라는 생각이 들었다.
그래서 다른사람의 풀이를 살펴보았는데
for(int i =1 ; i<=num/2;i++)
종료조건에 num/2를 준것을 확인할 수 있었다.
n의 가장 큰 약수는 2로 나눈 값이므로 가장 큰 약수 값까지만 진행해도 모든 연산이 완료되는 것이다.
그러면 조금이나마 시간을 줄일 수 있지 않을까
다른문제도 몇 개 풀었지만 포스팅 할만한 내용이 아닌것 같아 패스!
'프로그래밍 > 코딩테스트연습' 카테고리의 다른 글
프로그래머스 분수의 덧셈 (0) 2023.11.15 9/26 TIL [프로그래머스 코딩테스트] 단 한문제 (0) 2023.09.26 9/22 TIL [프로그래머스 코딩테스트] 2문제 (0) 2023.09.22 9/21 TIL [프로그래머스 코딩테스트] 4문제 (0) 2023.09.21 9/20 TIL [프로그래머스 코딩테스트] 4문제 (1) 2023.09.20