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

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

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

❓ Question 1

두 정수 사이의 합

  • 주어진 숫자 사이의 합을 모두 더해 구하라

📝 My Solution 1

function solution(a, b) {
    let sum = 0;
    const counting = Math.abs(a-b)
        if (counting === 0) {
            return a
        } else if (a>b) {
            for (let i = b; i<=a; i++) {
                sum = sum + i
            }
            return sum
        } else {
            for (let i = a; i<=b; i++) {
                sum = sum + i
                }
            return sum
        }
}

경우의 수를 다 대입해서 구해주었습니다.

    return (a+b)*(Math.abs(b-a)+1)/2;

미친 풀이법이 있기에 가져와봤습니다...
어마어마하군요

결과


❓ Question 2

나누어 떨어지는 숫자 배열

  • 숫자 배열에서 나누어 떨어지는 숫자로만 새 배열 만들기

📝 My Solution 2

function solution(arr, divisor) {
    let newArr = arr.filter(a => a%divisor === 0).sort((a,b) => a-b)
    if (newArr.length === 0) {
        return [-1]
    } else {
        return newArr
    }
}

필터를 통해서 나누어 떨어지는 수만 걸러주고, 오름차순으로 정렬했습니다.
조건에 맞는 수가 없다면 -1을 도출하도록 했습니다.

결과


❓ Question 3

같은 숫자는 싫어

  • 문자열을 내림차순으로 정렬

📝 My Solution 3

function solution(arr) {
    var answer = [];
    let num = -1;
        for (let i = 0; i<arr.length; i++) {
            if (num !== arr[i]) {
                answer.push(arr[i]);
                num = arr[i];
            }
        }
    return answer;
}

배열에서 중복되는 숫자만 배열에 넣을 수 있도록 해줘서 해결했습니다.

결과


❓ Question 4

가운데 글자 가져오기

  • 문자열의 가운데 글자 가져오기

📝 My Solution 4

function solution(s) {
    var answer = '';
    const remainder = s.length%2
    const middleNum = parseInt(s.length/2)
        if (remainder === 1) {
            answer = s[middleNum]
        } else {
            answer = s.slice(middleNum-1,middleNum+1)
        }
    return answer;
}

주어진 문자열의 길이가 짝수인지 아닌지 판단하고,
해당 조건에 따라서 가운데 글자를 가져왔습니다.

결과


❓ Question 5

2016년

  • 2016년의 어떤 날이 무슨 요일인지 도출

📝 My Solution 5

function solution(a, b) {
    const date = '2016-'+a+'-'+b;
    const week = ['SUN','MON','TUE','WED','THU','FRI','SAT']
    let today = new Date(date).getDay()
    return week[today];
}

2016년의 날짜를 만들고 해당 날짜에서 getday를 이용해 요일 숫자를 내오고
week 배열에서 인덱스를 찾아 적용합니다.

결과

좋은 웹페이지 즐겨찾기