프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 답
약수의 합 => 숫자의 약수는 1~제곱근까지의 정수와 그 배수로 이뤄져 있음을 이용.
[pseudo code]
1. 입력받은 정수의 제곱근을 변수로 선언
2. 1 ~ 제곱근까지 돌면서 정수 % i 값이 0(정수의 factor)이고, i 제곱근 값이 아니라면(예를 들어 4의 경우, 제곱근 값이 2이므로, 2 % 2는 의미 없음) i와 n/i 값을 모두 answer에 더해주고, 만약 i = 제곱근 값이라면 i만 더해줌
function solution(n) {
let answer = 0;
let sqrt = Math.sqrt(n);
for (let i = 1; i <= sqrt; i++) {
if (n % i === 0 && i !== sqrt) {
answer += i + n / i;
} else if (i === sqrt) {
answer += i;
}
}
return answer;
}
//간단버전
function solution(n) {
let answer = 0;
for (let i = 1; i <= n; i++) {
if (n % i === 0) {
answer += i;
}
}
return answer;
}
'항해99_10기 > [2주차] 알고리즘 문제풀이' 카테고리의 다른 글
[28번][중급] 최대공약수와 최소공배수 (0) | 2022.11.23 |
---|---|
[27번][중급] 예산 (0) | 2022.11.23 |
[25번][중급] 약수의 개수와 덧셈 (0) | 2022.11.23 |
[23번][중급] 시저암호 (0) | 2022.11.23 |
[24번][중급] 신규 아이디 추천 (0) | 2022.11.23 |