[JAVA-1]프로그래머스 1단계 - 약수의 합
https://programmers.co.kr/learn/courses/30/lessons/12928
문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
코드
class Solution {
public int solution(int n) { ---(1)
int answer = 0; ---(2)
for(int i =1; i<=n; i++){ ---(3)
if(n%i==0){
answer += i;
System.out.println(answer);
}
}
return answer;
}
}
풀이 과정
(1) 정수 n을 인자로 받는다.
(2) answer 변수를 0으로 초기화한다.
(3) for문을 돌리기
- 아래 if문에서 정수 n % i를 해 나눈 나머지가 0, 즉 약수가 되게끔 만들기 위해서
i를 0으로 초기화시켰다. - 그리고 조건이 통과되면 answer변수에 i값을 더한다.
실패 했던 thinking
정수가 짝수나 홀수일 경우를 대비해 for문 안에서 if - elseif로 나눠 값을 처리하려고 하였다.
그런데, 그렇게 하면 for문을 돌면서 n%i를 했을 때 0으로 나오던, 1로 나오던 다 더해서 값이 예상했던 값과 다른 값들이 나오게 되었다.
class Solution {
public int solution(int n) {
int answer = 0;
for(int i =0; i<=n; i++){
if(n%i==0){
answer += i;
}else if(n%i==1){
answer += i;
}
}
return answer;
}
}
그래서 else if로 지웠더니 값이 잘 나왔다.
Author And Source
이 문제에 관하여([JAVA-1]프로그래머스 1단계 - 약수의 합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wldus9503/JAVA프로그래머스-1단계-문제1번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)