본문 바로가기
Algorithm/구현

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

by HANNI하니 2023. 5. 31.

사용 언어 - Python3

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

정답

단순 구현 (정답 맞춘 여부 O)

계속 테스트8에서 런타임 에러 발생

=> x가 0일 경우를 고려하지 않았기 때문이었다.

# 런타임 에러
def solution(x, n):
    if x >= 0:
        answer = [i for i in range(x,x*n+1,x)]
    else:
        answer = [i for i in range(x,x*n-1,x)]
        
    return answer
# 런타임 에러
def solution(x, n):
    answer = []
    if x >= 0:
        for i in range(x,x*n+1,x):
            if len(answer) != n:
                answer.append(i)
    else:
        for i in range(x,x*n-1,x):
            if len(answer) != n:
                answer.append(i)
    return answer
# 런타임 에러
def solution(x, n):
    answer = []
    for i in range(abs(x),abs(x)*n+1,abs(x)):
        if len(answer) != n and x >= 0:
            answer.append(i)
        elif len(answer) != n and x < 0:
            answer.append(-i)

    return answer
# 정답
def solution(x, n):
    answer = []
    if x == 0:
        answer = [0]*n
    elif x >= 0:
        answer = [i for i in range(x,x*n+1,x)]
    else:
        answer = [i for i in range(x,x*n-1,x)]
        
    return answer
# 정답
def solution(x, n):
    answer = []
    if x == 0:
        answer = [0]*n
    else:
        for i in range(abs(x),abs(x)*n+1,abs(x)):
            if len(answer) != n and x > 0:
                answer.append(i)
            elif len(answer) != n and x < 0:
                answer.append(-i)

    return answer

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글