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

allnight5·2022년 12월 23일
0

프로그래머스

목록 보기
6/73

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

파이썬 첫번째 성공

def solution(x, n):
    answer = [0]*n
    for i in range(n):
        answer[i] = x*i+x;
    return answer

초기화를 해주지 않고.. 배열로 만들로 append해줄까 했는데..
append를 해주면 시간복잡도가 늘어서 공간복잡도가 많은 초기화를 해주고 넣어주기로했다.

파이썬 다른방식 참조

def solution(x, n): 
    return [i * x + x for i in range(n)]

자바 첫번째 실패

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

실패한 이유
x:10000000, n:1000으로 두고 돌려보면 int 범위를 벗어나는 숫자들이 음수가 되버리는 결과가 나온다. 그렇기 때문에 곱해주는 연산은 long으로 형변환을 이루어 주어야한다.

자바 두번째 성공

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        for (int i=0; i<n; i++){
            answer[i] = (long)i*x + x;
        }
        return answer;
    }
}
profile
공부기록하기

0개의 댓글