JavaScript - 프로그래머스 레벨 : 0(21) - Relatively New

먹보·2023년 5월 3일
1

퇴근 후 스트레스 풀기 딱 좋은...레벨 0 문제

1. 원소들의 곱과 합

문제 설명

정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.

예제

코드

function solution(num_list) {
    return num_list.reduce((a,b) => a*b,1) > (num_list.reduce((a,b) => a+b,0))**2 ? 0 : 1
}

🗒️코멘트


2. 배열의 길이에 따라 다른 연산하기

문제 설명

정수 배열 arr과 정수 n이 매개변수로 주어집니다. arr의 길이가 홀수라면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(arr, n) {
    return arr.length % 2 === 0 ? arr.map((el,i) => i % 2 !== 0 ? el+n : el) : arr.map((el,i) => i % 2 === 0 ? el+n : el)
}

🗒️코멘트


3. 첫 번째로 나오는 음수

문제 설명

정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 return하도록 solution 함수를 완성해주세요. 음수가 없다면 -1을 return합니다.

예제

코드

function solution(num_list) {
    for (let i = 0 ; i < num_list.length ; i++){
        if (num_list[i] < 0){
            return i
        }
    }
    return -1
}

🗒️코멘트


4. 카운트 다운

문제 설명

정수 start와 end가 주어질 때, start에서 end까지 1씩 감소하는 수들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

예제

코드

function solution(start, end) {
    const answer = []
    while(start >= end){
        answer.push(start)
        start--
    }
    return answer
}

🗒️코멘트


5. 수 조작하기 1

문제 설명

정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다.

"w" : n이 1 커집니다.
"s" : n이 1 작아집니다.
"d" : n이 10 커집니다.
"a" : n이 10 작아집니다.

위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요.

예제

코드

function solution(n, control) {
    const index = {
        "w" : 1,
        "s" : -1,
        "d" : 10,
        "a" : -10
    };
    for (let i = 0 ; i < control.length ; i++){
        n += index[control[i]]
    }
    return n
}

🗒️코멘트


6. 홀짝에 따라 다른 값 반환하기

문제 설명

양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(n) {
    let answer = 0;
    
    if (n % 2 !== 0){
        do {
            answer += n
            n -= 2
        } while(n > 0)
    } else {
        do {
            answer += n**2
            n -= 2
        } while (n > 0)
    }
    return answer
}

🗒️코멘트


7. 부분 문자열인지 확인하기

문제 설명

부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다. 예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만, "aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.
문자열 my_string과 target이 매개변수로 주어질 때, target이 문자열 my_string의 부분 문자열이라면 1을, 아니라면 0을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(my_string, target) {
    return Number(my_string.includes(target))
}

🗒️코멘트


8. n보다 커질 때까지 더하기

문제 설명

정수 배열 numbers와 정수 n이 매개변수로 주어집니다. numbers의 원소를 앞에서부터 하나씩 더하다가 그 합이 n보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(numbers, n) {
    let answer = 0;
    
    for (let i = 0 ; i < numbers.length ; i++){
        answer += numbers[i]
        
        if (answer > n){
            return answer
        }
    }
}

🗒️코멘트


9. 마지막 두 원소

문제 설명

정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.

예제

코드

function solution(num_list) {
    if (num_list[num_list.length-1] > num_list[num_list.length-2]){
        num_list.push(num_list[num_list.length-1] - num_list[num_list.length-2])
    } else {
        num_list.push(num_list[num_list.length-1]*2)
    }
    return num_list
}

🗒️코멘트


10. rny_string

문제 설명

'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다. 문자열 rny_string이 주어질 때, rny_string의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(rny_string) {
    return rny_string.replaceAll('m','rn')
}

🗒️코멘트


profile
🍖먹은 만큼 성장하는 개발자👩‍💻

0개의 댓글