Javascript/문제 풀이

프로그래머스 9일차

아라라_ 2023. 5. 26. 00:08

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

Frederick Philips Brooks
Mythical Man-Month 저자
728x90

배열 자르기

정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.

function solution(numbers, num1, num2) {
  return numbers.slice(num1, num2 + 1);
}

solution은 numbers 배열의 num1번째 인덱스부터 num2번째 인덱스까지의 부분 배열을 반환하는 함수입니다.

부분 배열을 얻기 위해 numbers 배열의 slice 메서드를 사용합니다. slice 메서드는 배열의 지정된 인덱스 범위에 해당하는 요소들로 이루어진 새로운 배열을 반환합니다.

slice 메서드의 첫 번째 매개변수 num1은 부분 배열의 시작 인덱스를 나타내며, 두 번째 매개변수 num2 + 1은 부분 배열의 끝 인덱스를 나타냅니다. num2 + 1을 사용하는 이유는 slice 메서드에서 두 번째 매개변수는 부분 배열에 포함되지 않는 인덱스를 나타내기 때문입니다. 따라서 num2까지 포함하기 위해 num2 + 1을 사용합니다.

마지막으로, numbers.slice(num1, num2 + 1) 표현식은 num1번째 인덱스부터 num2번째 인덱스까지의 부분 배열을 반환합니다. 이 부분 배열이 solution 함수의 반환 값이 됩니다.

 

 

외계행성의 나

우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.

function solution(age) {
    
    let alpha = {
        0 : "a",
        1 : "b",
        2 : "c",
        3 : "d",
        4 : "e",
        5 : "f",
        6 : "g",
        7 : "h",
        8 : "i",
        9 : "j"
    }
    
    let newAge = age + "";
    
    return newAge.split("").map((el) => alpha[el]).join("");
}

solution은 숫자로 된 나이를 PROGRAMMERS-962 행성의 나이 표현 방식으로 변환하는 함수입니다.

함수는 다음과 같이 동작합니다:

alpha 객체를 정의합니다. 이 객체는 숫자와 해당 알파벳 표현 사이의 매핑을 가지고 있습니다. 예를 들어, 숫자 0은 알파벳 'a'로, 숫자 1은 알파벳 'b'로 매핑되어 있습니다.

newAge 변수를 선언하고, 입력된 age를 문자열로 변환하여 할당합니다. 이는 나이를 문자열로 처리하기 위한 작업입니다.

newAge 문자열을 split("") 메서드를 사용하여 각 자리수를 분리한 배열로 변환합니다. 예를 들어, 23이 입력된 경우 newAge는 ["2", "3"] 배열로 변환됩니다.

map 함수를 사용하여 newAge 배열의 각 요소를 PROGRAMMERS-962 행성의 나이 알파벳으로 변환합니다. alpha[el]을 통해 el이라는 요소를 alpha 객체에서 찾아 해당하는 알파벳으로 매핑합니다. 각 자리수에 대해 매핑된 알파벳이 새로운 배열로 생성됩니다.

join("") 메서드를 사용하여 변환된 알파벳 배열을 다시 하나의 문자열로 합칩니다. 이렇게 합쳐진 문자열이 solution 함수의 반환 값이 됩니다.

예를 들어, solution(23)이 호출되면, newAge는 문자열 "23"으로 변환됩니다. 그런 다음 "2"와 "3"이라는 자리수를 갖는 배열로 분리됩니다. map 함수는 "2"를 "c"로, "3"을 "d"로 변환하여 새로운 배열인 ["c", "d"]를 생성합니다. 마지막으로 join("") 메서드를 사용하여 "cd"라는 문자열을 반환합니다.