프로그래머스 | Lv.1_연습문제_Part.1_JS

김명성·2021년 10월 18일
0

Algorithm

목록 보기
35/61
post-thumbnail

난이도 : Level. 1
언어 : Javascript
출제 내역 : 연습문제

전체 풀이 코드 👈🏻 클릭시 Github로 이동

❓ Question 1

직사각형 별찍기

  • 주어진 숫자 배열을 이용해, '*'로 된 직사각형을 만들자

📝 My Solution 1

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    for (let i = 0; i<b; i++) {
        let result = ''
        for (let l=0; l<a; l++){
            result = result + '*'
        }
        console.log(result)
    }
});

다른 문제들이랑은 다르게 console.log로 답을 내야하기에
약간 시간이 걸렸지만, 반복문을 이용해서 간단하게 답을 낼 수 있었습니다.

결과


❓ Question 2

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

  • x 만큼 간격이 있는 n 개의 숫자 배열을 만들기

📝 My Solution 2

function solution(x, n) {
    var answer = [];
    const add = x
        for (let i = 0; i<n; i++) {
            answer.push(x)
            x = x + add
        }
    return answer;
}

add 변수에 원래 x 값을 저장해 주고,
반복문을 이용해서 x 값에 a 를 n 만큼 더해주도록 해서 해결했습니다.

결과


❓ Question 3

행렬의 덧셈

  • 같은 크기의 배열에서 같은 인덱스에 있는 값을 더하기

📝 My Solution 3

function solution (arr1, arr2) { 
    return arr1.map((a,i) => a.map((b, j) => b + arr2[i][j]));
}

해당 문제는 map 함수를 이용해서 동일한 인덱스의 값끼리 더해주도록 했습니다.

결과


❓ Question 4

핸드폰 번호 가리기

  • 뒤의 4자리를 제외한 번호를 '*'로 만들기

📝 My Solution 4

function solution(phone_number) {
    var answer = '';
    let backNum = phone_number.slice(phone_number.length-4, 
    					phone_number.length)
    answer = '*'.repeat(phone_number.length-4) + backNum
    return answer;
}

BackNum이라는 변수를 만들어서 뒤의 4자리를 빼놓은 다음
repeat 함수를 통해 나머지 숫자를 가리는 코드를 짜봤습니다.

결과


❓ Question 5

하샤드 수

  • 어떤 수의 자릿수를 다 더한 값으로, 어떤 수를 나눴을 때 나누어 떨어지는 수 찾기

📝 My Solution 5

function solution(x) {
    var answer = true;
    let digit = String(x).split('')
    let Num = 0
        for (let i = 0; i<digit.length; i++) {
            Num = Num + Number(digit[i])
        }
    return x%Num === 0 ? answer = true : answer = false
}

우선 숫자를 배열 형태로 나눈 뒤,
해당 자리수를 더한 값을 Num에 넣어줍니다.
그 뒤, 나머지를 확인해서 0이면 true를 아니라면 false를 내줍니다

결과

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보