x만큼 간격이 있는 n개의 숫자

정병웅·2023년 1월 30일
0

알고리즘 스터디

목록 보기
3/14

문제

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

코드 설명

class Solution {
    public long[] solution(long x, int n) {
        long[] answer = new long[n];
        long number =0;
        for(int i=0,j=1;i<n;i++,j++){
            number = x*j;
            answer[i] = answer[i] + number;
        }
        return answer;
    }
}
  • 중요 설명
  1. 구구단이라고 생각하여 x가 곱하는 수이고 j 가 1씩 증가하는 숫자의 역할을 정했다.
  2. number 를 선언하여 최종적으로 배열에 들어가는 수는 number를 더하는 수 이다.
  • 부족한 부분
  1. 파라미터 값이 원래 int였지만 x의 값이 커지면 int가 나타낼 수 있는 수보다 큰 값이 오면 테스트 에러 발생 따라서 long으로 임의 수정
  2. number 변수를 굳이 하지 않고 하는 방법이 있을 것인데,,,,
class Solution {
    public long[] solution(int x, int n) {

        long[] answer = new long[n];

        for(int i = 0; i < n; i++){
                answer[i] = (long)x*(i+1);    
        }

        return answer;
    }
}

위의 코드와 내 코드를 비교해보면 아래와 같이 고민한 1번과 2번이 해결된다.
1. x 변수를 for 문내에서 형 변환을 진행한다.
2. i의 값을 i+1을 해주고 곱셈을 진행하면 number 변수 선언이 필요가 없다,,,난 멀었따,,,,

오늘도 1 멍청 스탯,,,,

profile
인생은 IT 노가다

0개의 댓글