Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- S&P500
- 오버라이딩
- 프로그래머스
- object
- mco
- FCF
- 접근제어자
- 다형성
- 인플레이션
- 알고리즘
- 금리인하
- 제태크
- 무디스
- 주식
- 배당성장
- 금리인상
- 백준
- javascript
- 현금흐름표
- 주린이
- Java
- StringBuffer
- 기업분석
- 객체지향
- 미국주식
- XLF
- 그리디 알고리즘
- 잉여현금흐름
- etf
- 자바
Archives
- Today
- Total
오늘의하루
[프로그래머스 1단계 - JAVA] 약수의 합 본문
문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
풀이
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= Math.sqrt(n); i++){
if(n % i == 0){
answer = answer + i;
int check = n/i;
if( i != check){
answer = answer + check;
}
}
}
return answer;
}
}
약수를 효율적으로 구하는 방법
- 정수 10의 약수를 구해보자
- 방법 1. 정수 1~10까지의 수로 10을 나눠서 나머지가 0인지 알아본다.
- 결과 : 1, 2, 5, 10
- 실행 횟수 : 10번
- 방법 2. 제곱근으로 나눠서 나머지가 0인지 알아본다.
- 실행 1. 정수 1부터 10의 제곱근(3.16...)의 수로 우선 10을 나눠서 나머지가 0인지 알아본다.
- 첫번째 결과 : 1, 2
- 실행 2. 첫번째 결과로 10을 나눈다. (이 경우 나머지는 무조건 0이다.)
- 두번째 결과 : 10, 5
- 첫번째 결과와 두번째 결과를 합친 후 중복되는 값을 제거하면 모든 약수가 나온다.
- 실행횟수 : 4번
- 실행 1. 정수 1부터 10의 제곱근(3.16...)의 수로 우선 10을 나눠서 나머지가 0인지 알아본다.
- 방법 1. 정수 1~10까지의 수로 10을 나눠서 나머지가 0인지 알아본다.
'JAVA' 카테고리의 다른 글
[프로그래머스 1단계 - JAVA] 정수 제곱근 판별 (0) | 2022.09.16 |
---|---|
[프로그래머스 1단계 - JAVA] 평균 구하기 (0) | 2022.09.16 |
[프로그래머스 1단계 - JAVA] 자릿수 더하기 (0) | 2022.09.16 |
[프로그래머스 1단계 - JAVA] 짝수와 홀수 (0) | 2022.09.16 |
[Java] 변수, 연산자, 조건문, 반복문, 배열, 객체지향, 예외처리 (0) | 2022.09.13 |
Comments