본문 바로가기

programmers-코딩테스트 연습/Level 1. 자바

2021-07-13 / x만큼 간격이 있는 n개의 숫자

문제 설명

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

 

제한 조건

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.

 

입출력 예

x n answer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4, -8]

 

초기 코드

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = {};
        return answer;
    }
}

 

정답 코드

class Solution {
  public long[] solution(int x, int n) {
      long[] answer = new long[n];
      long x1 = x;
                     
      for(int i = 1; i <=n; i++){
          answer[i-1] = x1*i;
      }
            
      return answer;
  }
}

 

코드 설명

어떤 수의 배수를 구할 때는 변수를 하나 잡아 어떤 수를 넣어준 후 계속해서 곱해주는 방법이 있다. 
x만큼의 간격이 있는 수는 x에서 시작해서 x씩 커진다는 말이다. 그리고 n번 만큼 반복하기 때문에 반복문을 n까지 돌려준다. 

answer은 n번만큼 반복하는 예제이기 때문에 총 길이가 n이다. 동적할당을 통해 answer를 선언한다.
이후 answer의 방에 차례대로 x와 i를 곱해준다. x가 2면 2*1,  2*2 ... 이런 순서대로 커져서 들어가게 된다. 

배열의 인덱스는 0부터 시작하기 때문에 반복문을 0부터 시작해도 된다. 그럴 경우 배열의 방에 넣어줄 때 i*1을 곱해야한다. 처음 수가 0이기 때문에 첫방에 0이 들어가는 것을 막아준다.

 

 

 

 

코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

programmers.co.kr