기초부터 시작하는 코딩/Programmers

Programmers 문제를 풀어봅시다. Day28

kebab00 2023. 6. 15. 21:42

728x90

1. 잘라서 배열로 저장하기

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

function solution(my_str, n) {
  const num = Math.ceil(my_str.length / n);
  const answer = [];

  for (let i = 0; i < num; i++) {
    const start = i * n;
    let end = 0;

    if (start + n >= my_str.length) {
      end = my_str.length;
    } else {
      end = start + n;
    }

    answer.push(my_str.substring(start, end));
  }

  return answer;
}

 

- solution 함수는 개의 매개변수 my_str n 받습니다.

- num 변수는 주어진 문자열을 n으로 나눈 올림한 값입니다.

- 이는 결과 배열의 길이를 결정합니다.answer 배열은 결과 부분 문자열을 저장하기 위한 배열입니다.

- for 루프는 num 값에 따라 반복합니다.

-  반복에서 i 0부터 num - 1까지 증가합니다.start 변수는 현재 반복에서 부분 문자열의 시작 위치를 나타냅니다.

- if 문은 부분 문자열의 끝 위치 end를 결정합니다.

- tart + n이 주어진 문자열의 길이보다 크거나 같으면, 부분 문자열의 끝은 주어진 문자열의 끝을 가리킵니다.

- 따라서 end를 my_str.length로 설정합니다.

- 그렇지 않은 경우, 부분 문자열의 끝은 start + n 됩니다.

- 따라서 end start + n으로 설정합니다.

- answer.push(my_str.substring(start, end)) my_str 문자열에서 시작 위치 start부터 위치 end까지의 부분 문자열을 answer 배열에 추가합니다.

- for 루프가 종료되면 answer 배열에는 my_str 문자열이 길이 n으로 나누어진 부분 문자열이 저장되어 있습니다.

2. 최댓값 만들기 (2)

- 정수 배열 numbers가 매개변수로 주어집니다. 

- numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

function solution(numbers) {
  let answer = 0;

  numbers.sort((a, b) => a - b);  // 배열 오름차순 정렬

  let a1 = numbers[0] * numbers[1];
  let a2 = numbers[numbers.length - 1] * numbers[numbers.length - 2];
  answer = (a1 < a2) ? a2 : a1;

  return answer;
}

- solution 함수는 숫자 배열 numbers 매개변수로 받습니다.

- answer 변수는 결과값을 저장하기 위한 변수로, 초기값은 0으로 설정됩니다.

- numbers.sort((a, b) => a - b) 구문은 numbers 배열을 오름차순으로 정렬합니다.

- 이를 통해 배열 내의 숫자들이 작은 값부터 값으로 정렬됩니다.

- a1 변수는 정렬된 numbers 배열의 번째와 번째 수를 곱한 값을 저장합니다.

- a2 변수는 정렬된 numbers 배열의 마지막 수를 곱한 값을 저장합니다.

- answer 변수는 a1 a2 중에서 값을 선택하여 저장합니다.

- 삼항 연산자((a1 < a2) ? a2 : a1) 사용하여 비교하고 값을 선택합니다.