2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Lv0 JS 프로그래머스 #22 - 배열의 길이에 따라 다른 연산하기, 공백으로 구분하기 1, 원소들의 곱과 합

2023. 8. 31. 14:00ㆍ프로그래머스 JS 코딩테스트
반응형

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

 

문제 설명

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

제한사항

  • 1 ≤ arr의 길이 ≤ 1,000 
  • 1 ≤ arr의 원소 ≤ 1,000 
  • 1 ≤ n ≤ 1,000

입출력 예시

  • 예제 1번의 arr의 길이는 5로 홀수입니다. 따라서 arr의 짝수 인덱스 0, 2, 4에 주어진 n 값인 27을 더하면 [76, 12, 127, 276, 60]이 됩니다. 따라서 [76, 12, 127, 276, 60]를 return 합니다.
  • 예제 2번의 arr의 길이는 4로 짝수입니다. 따라서 arr의 홀수 인덱스 1, 3에 주어진 n 값인 100을 더하면 [444, 655, 666, 877]이 됩니다. 따라서 [444, 655, 666, 877]를 return 합니다.

풀이

const solution = (arr, n) => {
    let result = [];
    if(arr.length % 2 === 1){
        for(let i = 0; i < arr.length; i++){
            if(i % 2 === 0){
                result.push(arr[i] + n);
            } else {
                result.push(arr[i]);
            }
        }
    } else {
        for(let i = 0; i < arr.length; i++){
            if(i % 2 === 1){
                result.push(arr[i] + n);
            } else {
                result.push(arr[i]);
            }
        }
    }
    return result;
}

// 배열 result 선언
// arr이 홀수 이면, i가 짝수일 때 해당 인덱스 값에 n을 더한 값을 result에 할당
// arr이 짝수 이면, i가 홀수일 때 해당 인덱스 값에 n을 더한 값을 result에 할당

 

68. 공백으로 구분하기 1

문제 설명 

  • 단어가 공백 한 개로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항 

  • my_string은 영소문자와 공백으로만 이루어져 있습니다. 
  • 1 ≤ my_string의 길이 ≤ 1,000 
  • my_string의 맨 앞과 맨 뒤에 글자는 공백이 아닙니다.

입출력 예시 

  • 예제 1번의 my_string은 "i love you"로 공백 한 칸으로 나누어진 단어들은 앞에서부터 순서대로 "i", "love", "you" 이므로 ["i", "love", "you"]를 return 합니다.
  • 예제 2번의 my_string은 "programmers"로 단어가 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.

풀이

const solution = my_string => my_string.split(" ");

// split(" ") => 문자열을 괄호 내 조건을 통해 배열로 나눈다.

 

69.  원소들의 곱과 합

 

문제 설명 

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

제한사항 

  • 2 ≤ num_list의 길이 ≤ 10 
  • 1 ≤ num_list의 원소 ≤ 9

입출력 예시 

  • 모든 원소의 곱은 120, 합의 제곱은 225이므로 1을 return합니다.
  • 모든 원소의 곱은 840, 합의 제곱은 529이므로 0을 return합니다.

풀이

const solution = num_list => {
    let multi = 1;
    let sum = 0;
    for(let i = 0; i < num_list.length; i++){
        multi *= num_list[i];
        sum += num_list[i];
    }
    return multi < sum**2 ? 1 : 0;
}

// multi는 모든 요소를 곱한 값
// sum은 모든 요소를 더한 값
// sum의 제곱보다 multi가 작으면 1, 그렇지 않으면 0

 

  • 정답률 높은 순부터 풀이
  • 매일 3 문항 풀이
반응형