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
- 개발
- 공부
- JS
- nqueens
- array
- grpahQL
- JavaScript
- underscores
- 코딩
- 연습
- vscode
- underbar
- method
- 알고리즘
- 포스기
- 코드스테이츠
- 엔퀸즈
- 초보
- 제일어려워
- 일상
- 해커톤
- Instantiation Patterns
- 취업
- 자바스크립트
- 클라이언트
- DOM
- 리액트
- this
- react
- ftech
Archives
- Today
- Total
analogcoding
algorithm 연습8 본문
문제. sumDigits 함수는 input으로 숫자를 받고 받은 숫자의 각 자릿수의 합을 리턴하고
음수를 받는 경우 맨 앞 자릿수는 음수로 계산해서 리턴.
Ex) input : 1148 => output : 14 (1+1+4+8)
input : -316 => output : 4 (-3+1+6)
해결방안.
1. input 숫자를 양수, 음수에 따라 조건을 나눔.
2. 각 자릿수에 접근하기 위해 문자열로 변경.
3. 한 자릿수 양수,음수의 경우 바로 input을 리턴.
4. 양수의 경우 각 자릿수의 값을 변수 sum에 반복적으로 더해서 누적 값을 리턴.
5. 음수의 경우 맨 앞 자릿수에 -1을 곱해 변수로 설정, 그 수에 나머지 값들을 반복적으로 더해서 누적 값을 리턴.
input의 각 자릿수의 접근을 위해 문자로 변경, sum 과 negative 변수 생성.
function sumDigit(num) {
let numStr = num.toString();
let sum = 0;
let negative = 0;
input이 음수일 경우의 조건을 설정.
변수 negative 에 첫 자릿수 * -1 을 설정하고 나머지 값들을 반복적으로 누적해서 negative 를 리턴.
if(num < 0){
negative = (Number(numStr[1]) * -1);
for(let i = 2; i < numStr.length; i++){
negative += Number(numStr[i])
}
return negative;
}
input이 양수일 경우 sum에 반복적으로 자릿 값들을 누적해서 sum을 리턴.
else {
for(let i = 0; i < numStr.length; i++){
sum = sum += Number(numStr[i])
}
}
return sum;
}
결과확인
'Study JS for me > Algorithm' 카테고리의 다른 글
algorithm 연습10 (0) | 2019.05.06 |
---|---|
algorithm 연습9 (0) | 2019.05.05 |
recursion 예제연습3 (0) | 2019.05.04 |
recursion 예제연습2 (0) | 2019.05.02 |
recursion 예제 연습 (0) | 2019.05.02 |
Comments