Post

프로그래머스 LV1 "x만큼 간격이 있는 n개의 숫자"

프로그래머스 Lv1 x만큼 간격이 있는 n개의 숫자

기초부터 다시 공부를 하기위해 프로그래머스 라는 사이트에서 코딩테스트를 LV0 부터 가능한곳까지 못하는곳은 레퍼런스를 찾아가며 풀어보려고 합니다.

매일 1개의 풀이를 하고 그 풀이에대한 나의 생각 및 해석을 적어보려합니다.

오늘은 LV1 열세번째 문제 ‘x만큼 간격이 있는 n개의 숫자’ 문제입니다.

프로그래머스 이미지

위 이미지가 프로그래머스 코딩문제입니다.

문제는 매개변수로 xn이라는 정수가 주어지면 x포함한 x값만큼 증가하는 정수 n개를 배열의 형태로 출력하는 문제입니다.

오늘 문제에서는 간단한 반복문과 배열 메서드로 문제를 해결해 보겠습니다.

그럼 오늘의 문제를 한번 풀어보겠습니다.

기본 세팅 코드도 알아보겠습니다.

1
2
3
4
function solution(x, n) {
  var answer = [];
  return answer;
}

기본 세팅 코드는 간단하게 xn이라는 정수의 매개변수를 전달하며 함수 내에 answer배열을 선언해 리턴하는 기본적인 함수의 형태입니다.

이 문제를 해결하는 방법은 매우 간단합니다. 주어진 정수 x를 기준으로 시작해서, 그 값을 n번 만큼 증가시키며 배열에 저장하는 것입니다. 이를 위해 반복문을 사용하여 xi를 곱한 값을 배열에 추가하고, 마지막에 그 배열을 반환하면 됩니다.

설명을 보충하자면, 우선 answer라는 빈 배열을 만듭니다. 그 후에 반복문을 사용하여 i가 1부터 n까지 증가하도록 설정합니다. 반복문 안에서는 answer 배열에 x * i 값을 추가합니다. 이렇게 하면 x부터 시작하여 x의 배수들이 n개만큼 배열에 추가되는 것이죠.

우선 문제에서 요구하는 것은 정수 xn을 받아서, x부터 시작하여 x의 간격으로 증가하는 값을 n개만큼 배열에 담는 것입니다.

가장 먼저, 주어진 매개변수 xn을 활용하여 결과를 저장할 빈 배열 answer를 만듭니다. 그리고 x부터 시작하여 x의 배수들을 n개만큼 차례로 배열에 추가하면 됩니다.

이것을 위해 반복문을 사용합니다. 반복문을 돌면서 i 값을 1부터 n까지 증가시키며, 각 반복마다 answer 배열에 x * i 값을 추가합니다. 그렇게 하면 x부터 시작하여 x의 배수들이 배열에 순서대로 추가되는 것이죠.

그럼 예를 들어서 x가 2이고, n이 5라면, 처음에는 x값인 2를 배열에 넣습니다. 그 다음에는 2 * 2로 4를 배열에 넣고, 그 다음에는 2 * 3으로 6을 배열에 넣습니다. 이런 식으로 계속 x의 배수들을 배열에 추가하다보면, 결과적으로 [2, 4, 6, 8, 10]이 될 것입니다.

이제 이 방법을 코드로 옮겨보면 됩니다. 위에서 언급한 대로 answer 배열을 만들고, 반복문을 사용하여 x * i 값을 배열에 추가하면 됩니다. 그리고 마지막으로 answer 배열을 반환하면 문제가 해결됩니다.

그럼 이것을 코드로 나타내면 다음과 같습니다.

1
2
3
4
5
6
7
function solution(x, n) {
  var answer = [];
  for(let i = 1; i<=n; i++){
      answer.push(x*i);
  }
  return answer;
}

문제의 식이 완성되었으니 프로그래머스에 한번 확인해보겠습니다.

프로그래머스 이미지

성공이네요!

오늘은 프로그래머스 LV1 ‘x만큼 간격이 있는 n개의 숫자’ 문제의 대해서 알아봤습니다.

제 방법이 꼭 정답은 아니니 그저 이런방법도 있구나하고 참고용으로만 봐주시면 감사하겠습니다.

감사합니다.

This post is licensed under CC BY 4.0 by the author.