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 |
Tags
- 전자계약솔루션
- 아이폰12
- 아이폰
- map
- 독후감
- 마케팅
- 갤럭시노트20
- 모두싸인
- 자릿수더하기
- 온라인계약
- javascript
- 알고리즘
- 전자계약
- 아주작은습관의힘
- 모두의사인
- 옥소폴리틱스
- 코딩테스트
- 모두싸인마케터
- 습관
- 독서리뷰
- 블록체인
- 전자계약서비스
- 전자계약서
- 좋은습관
- 모두싸인마케팅
- 모두사인
- 자바스크립트
- atomichabits
- 아이폰13
- 전자계약시스템
Archives
- Today
- Total
찰리의 이야기
Javascript 약수의 합 본문
반응형
Javascript 약수의 합
문제 : 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예
n / return
12 | 28 |
5 | 6 |
주어진 코드 ↓
function solution(n) {
var answer = 0;
return answer;
}
약수를 알기 위해서는 1부터 정수까지의 모든 자연수들을 나누어서
나머지가 0인 수들이 약수이고,
나머지가 남는 수들은 약수가 아니라는 것에서 출발했습니다.
확실히, 개념에 대한 이해가 확실하다면,
코드로 구현하는 것이 훨씬 명확해지는 것 같습니다.
function solution(n) {
var answer = 0;
for(let i=0; i<=n; i++){
if(n % i === 0){
answer = answer + i;
}
}
return answer;
}
여기까지가 제 풀이 방법이고,
다른 풀이법도 살펴보았습니다.
function solution(n, a=0, b=0) {
return n <= a/2 ? b : solution(n, a+1, b+=n%a ? 0 : a);
}
삼항연산을 중복해서 사용하는데 재귀적으로 사용했습니다.
그런데 상당히 복잡해서 가독성이 떨어질 뿐아니라,
연산 속도도 높게 나오는 것 같습니다.
코드가 항상 짧은 것이 최고인가 하면,
항상 그렇지는 않은 것 같습니다.
동료가 읽기 좋은 가독성 좋은 코드와,
연산이 간단한 코드가 좋은 코드인 것 같다는 생각입니다.
Javascript 약수의 합
반응형
Comments