반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
** Javascript
1) 맨 처음 제출한 코드는 이렇다.
function solution(n)
{
let answer = 0;
const string = `${n}`;
for (var i=0; i<string.length; i++) {
answer += parseInt(string[i]);
}
return answer;
}
2) Array.from() 과 reduce 를 활용하면 이렇게까지 줄일 수 있다.
function solution(n)
{
return Array.from(n.toString()).reduce((acc, curr) => acc += parseInt(curr), 0);
}
3) 숫자 n 을 string 으로 만들지 않는 풀이는 다음과 같다.
function solution(n)
{
let answer = 0;
while(n > 0) {
answer += n % 10;
n = Math.floor(n / 10);
}
return answer;
}
** Java
1) 숫자로만 자릿수를 구해서 합산하는 방법
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while (n > 0) {
answer += n % 10;
n = n / 10;
}
return answer;
}
}
2) 숫자를 문자열 배열에 쪼개서 넣어준 뒤 합산
근데 이 방식은 속도가 1)보다 느리다.
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
String[] numbers = Integer.toString(n).split("");
for(String number : numbers){
answer += Integer.parseInt(number);
}
return answer;
}
}
** Python
1) 숫자로만 자릿수 구하여 합산
def solution(n):
answer = 0
while(n > 0):
answer += n % 10
n = n // 10
return answer
2) 숫자를 toString 하여 sum
Python의 경우도 1) 의 계산 속도가 더 빠르다
def solution(n):
return sum([int(i) for i in str(n)])
반응형
'프로그래머스 > level 1' 카테고리의 다른 글
[프로그래머스] 약수의 합 (0) | 2021.08.14 |
---|---|
[프로그래머스] 이상한 문자 만들기 (0) | 2021.08.14 |
[프로그래머스][위클리챌린지] 2주차 상호평가 (0) | 2021.08.14 |
[프로그래머스][위클리챌린지] 1주차 부족한 금액 계산하기 (0) | 2021.08.09 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2021.08.09 |