https://school.programmers.co.kr/learn/courses/30/lessons/12928
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
- n은 0 이상 3000이하인 정수입니다.
class Solution {
public int solution(int n) {
int answer = 0;
for (int i=1; i<=n; i++) {
if (n%i==0){
answer +=i;
}
}
return answer;
}
}
"모두 더한다", "모두 구하라" 등 1+2에 3을 또더하고 거기에 4를 더하는 등 내가 여러번 해야한다 싶으면
대부분 반복문을 이용하면 된다
먼저 약수를 구하는 if문 부터 작성해보자
가상의 정수 x가 있다고 생각하고 해당 정수의 약수를 구하는 방법은 x를 1부터 x까지 나눠서 나머지의 값이 0이면 된다
예를 들어 숫자 5인경우 1과 본인인 5만이 약수를 가지고, 6인경우 1,2,3,6을 약수로 가진다
만약(if) 정수n를 i로 나눴을때 나머지값이 0인경우 answer 에 i를 저장한다 - >if (n%i==0){ answer +=i; })
그 후 반복문 for를 이용해 변수 i를 1부터 n과 같거나 작을때까지 식에 대입해보고 후위연산자를 이용해 1을 증가시키며 반복한다 -> (for (int i=1; i<=n; i++))
변수 i가 정수n가 같을때까지 반복문이 실행되고 종료되고, 조건에 맞는 숫자들은 answer에 저장이 되어서 그 값을 리턴한다 -> (return answer;)
'프로그래머스 문제풀어보기' 카테고리의 다른 글
[Lv.0] 정수 제곱근 판별 (0) | 2022.10.10 |
---|---|
[Lv.0] 자릿수 더하기 (2) | 2022.10.08 |
[Lv.0] 평균 구하기 (0) | 2022.10.06 |
[Lv.0] 짝수와 홀수 (0) | 2022.10.06 |
[Lv.0] 최댓값 구하기 (0) | 2022.10.06 |
댓글