0606 TIL 프로그래머스 코테 연습

Yang⭐·2021년 6월 6일
0

TIL

목록 보기
5/10

자릿수 더하기

자연수 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);    
        }    

이런식을 풀 수도 있다.


x만큼 간격이 있는 n개의 숫자

함수 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;
}

0개의 댓글

관련 채용 정보