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
- 후위 표기법
- 완전탐색
- Java
- 에라토스테네스의 체
- pandas
- 쿼드압축 후 개수세기
- 메뉴리뉴얼
- 알고리즘
- 문자열
- 영문자 확인
- fragment identifier
- 동적계획법
- HashSet
- 조합
- 2017 카카오 코드
- 순열
- 규칙찾기
- python
- Stack
- Dynamic Programming
- 어려웠던 문제
- 완전 탐색
- 최소공배수
- 보이어무어
- 점프와 순간이동
- 튜플
- 반복문
- dfs
- HashMap
- 프로그래머스
Archives
- Today
- Total
csmoon1010의 SW 블로그
[200511] 약수의 합 - 연습문제(level1) 본문
1. 문제이해
- 정수 n의 약수들의 합 구하기
2. 전략
- n의 제곱근일때까지 약수 쌍을 찾으면 answer에 더해주기
1) n%i == 0일때
2) i == Math.sqrt(n)이면 i를 아니면 i + n/i를 더해주기
3. 참고사항
- Math.sqrt(n)까지 돌리면 for문의 실행 횟수를 훨씬 줄일 수 있다!!
--> 시간 복잡도를 줄이는 방법 항상 고민하기!!
4. 코드
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= Math.sqrt(n); i++){
if(n%i == 0)
answer += (i == Math.sqrt(n)) ? i : i + n/i;
}
return answer;
}
}
'Coding Test > 프로그래머스' 카테고리의 다른 글
[200512] 자릿수 더하기 - 연습문제(level1) (0) | 2020.05.12 |
---|---|
[200511] 이상한 문자 만들기 - 연습문제(level1) (0) | 2020.05.11 |
[200511] 시저 암호 - 연습문제(level1) (0) | 2020.05.11 |
[200511] 문자열을 정수로 바꾸기 - 연습문제(level1) (0) | 2020.05.11 |
[200511] 수박수박수박수박수박수? - 연습문제(level1) (0) | 2020.05.11 |
Comments