문제
풀이
(1) 문제 분석하기
- 반복문을 돌면서 n을 i로 나눴을 때 나머지가 0인 값을 정답 변수에 더함
- 이때 주어진 반복 횟수를 줄이기 위해 정수 n을 1/2로 나눈 값 만큼 반복문을 돌고, 나온 값에 n을 미리 더함
(2) 슈도코드 작성하기
정답을 담을 int형 변수 answer n으로 초기화
for(1부터 n/2포함까지){
if(n을 i로 나눴을 때 나머지가 0이면){
answer에 i를 더함
}
}
정답 변수 answer 반환
(3) 코드 구현하기
package algorithm.test26;
public class Solution {
// for문을 돌면서 정수 n을 i로 나눠서 딱 떨어지는 값을 answer에 더함
// 반복문은 n/2 까지
public int solution(int n) {
int answer = n;
for (int i = 1; i <= n/2; i++) {
if ((n % i) == 0) {
answer += i;
}
}
return answer;
}
public static void main(String[] args) {
int n = 12;
Solution sol = new Solution();
System.out.println(sol.solution(n));
}
}
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'📊 Algorithm&SQL' 카테고리의 다른 글
[Java/프로그래머스] K번째 수 (0) | 2022.12.11 |
---|---|
[Java/프로그래머스] 예산 (2) | 2022.11.27 |
[Java/프로그래머스] 약수의 개수와 덧셈 (0) | 2022.11.26 |
[Java/프로그래머스] 숫자의 표현 (1) | 2022.11.22 |
[Java/프로그래머스] 숫자 문자열과 영단어 (0) | 2022.11.22 |