티스토리 뷰
반응형

문제
문제 출처
programmers.co.kr/learn/courses/30/lessons/12928
문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예
| n | return |
| 12 | 28 |
| 5 | 6 |
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
풀이
1. 제곱근까지 차례대로 n의 약수인지 확인한다.
2. 약수인 경우 몫과 함께 answer에 더한다. 이 수가 제곱근인 경우에는 나누는 값과 몫이 동일하므로 몫은 더하지 않는다.
class Solution {
public int solution(int n) {
int answer = 0;
int i = 1;
//n의 제곱근까지 반복
while (i <= Math.sqrt(n)) {
//약수인 경우
if (n % i == 0) {
answer += i;
//제곱근이 아닌 경우
if (i != n/i)
answer += n/i;
}
i++;
}
return answer;
}
}반응형
'Develop > Algorithm' 카테고리의 다른 글
| [프로그래머스/Java] 연습문제 - 시저 암호 (0) | 2021.01.20 |
|---|---|
| [프로그래머스/Java] 연습문제 - 문자열 내 p와 y의 개수 (0) | 2021.01.19 |
| [프로그래머스/Java] 연습문제 - 짝수와 홀수 (0) | 2021.01.16 |
| [프로그래머스/Java] 연습문제 - 문자열 내 마음대로 정렬하기 (0) | 2021.01.16 |
| [프로그래머스/Java] 연습문제 - 같은 숫자는 싫어 (0) | 2021.01.15 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 뷰모델
- viewmodel
- BAEKJOON ONLINE JUDGE
- heap
- Android
- MutableLiveData
- 프로그래머스
- 안드로이드
- error
- Kotlin
- 라이브 데이터
- 변수
- livedata
- 우선순위큐
- architectural pattern
- 후기
- 자바
- SCPC2021
- java
- 코틀린
- 백준
- androidx.core
- 알고리즘
- 힙
- 아키텍처 패턴
- hilt
- gradle
- Naver AI Burning Day
- Algorithm
- programmers
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
