자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
function solution(n){
let answer = (n+'').split('');
return answer.reduce((a,b)=>(+a)+(+b),0)
}
20번 테스트에서 계속 실패였는데 reduce내부에 0을 추가했더니 통과됨. 결과값이 0이었나보다.
=> reduce메소드 실행 시 값이 0이면 에러가 발생해서 디폴트값으로 0을 넣어줘야 한다고 했다.
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
입력/출력
5 3
*****
*****
*****
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
let star = `${"*".repeat(a)}\n`
console.log(star.repeat(b));
});
"*".repeat(a)
까지 작성한 다음 세로열로 반복시키려면 \n
을 써야하는 것 까지 생각해냈지만 무턱대고 뒤에 붙이니 에러가났다... 백틱을 사용해 문자열로 만드는 부분은 구글의 힘을 빌렸다..ㅜㅜ
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
let star = "*".repeat(a);
for(var i = 0; i < b; i++) { // row을 b번 반복
console.log(star);
}
이런식을 풀 수도 있다.
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
입출력 예
x n answer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4, -8]
function solution(x, n) {
var answer = [];
for(let i=1;i<n+1;i++){ // i가 0이면 [0,2,4,...]결과가 나와서 값을 1로 줌.그렇기에 n+1 길이만큼으로 설정함.
let num = 0 // for문 밖에서 설정하니 값이 이상하게 나옴. 2,6,12,20,30으로..
num += x * i
answer.push(num)
}
return answer;
}