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

alsk9624·2024년 7월 12일
0

TIL

목록 보기
9/21

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

진짜ㅏㅏㅏㅏㅏㅏ 오랫동안 풀었다 너무 힘들었다 하 ㅠ...

오답도 가지각색으로 나왔다

먼저 첫 번째 오답

def solution(x, n):          #함수 solution
    answer = []              #새로운 리스트 생성
    for i in solution(x,n):  #반복문 사용해서 값 출력
        answer.append        #리스트에 값 추가
    return answer            #리스트 반환

아 웃겨 지금 보니까 완전 뭐세요? 싶은 코드
무언갈 해보고는 싶은데 어설프기만 했던,,,
일단 여기서 나왔던 오류는
TypeError: 'function' object is not iterable
반복할 수 없는 애들을 반복해버림
function은 반복이 되지 않는 것.....
for 문은 시퀀스 즉, 반복 가능한 애들이 들어가야 한다.
(문자, 숫자 같은 것!!)

두번째 오답

def solution(x, n):
    answer = []
    for i in (x,n):
        print(answer.append)
    return answer

흠 그래서 아리까리한 상태로 시퀀??스?? (진짜 이런 상태였음) 일단 고치러 갔는데
내가 봐도 황당함
시퀀스... 문자? 이러고 냅다 (x, n) 넣고 추가된 리스트를 뽑아내고 싶었나봐요... print 냅다 실행시킴
당연히 틀렸지!!!!
그래서 아... 참 숫자 리스트를 받아주는 'range'가 있었구나... 하면서 네네... 써보겠습니다...

그래서 만들어진 세 번째 오답

def solution(x, n):         #함수 정의
    answer = []             #'answer' 새로운 리스트 생성
    for i in range(x,n-1):  #x부터 시작해 숫자 n개
        add = add+i          # x씩 증가하는 숫자 만들기
        answer.append(add)  # add 값 리스트에 추가하기
    return answer           # answer 리스트 출력하기

가장 정답에 가까웠던 코드~
이만큼 고치면서 뭔가 많이 잘못됐다는 걸 알아서 ㅋㅋㅋㅋ
이건 이렇게 사용하는구나... 한 코드들 ㅋㅋㅋㅋㅋ
사실 어펜드 사용할 때도 뭘 더 추가해야 돼? 이러고 있었는데
append는 list 이름.append(데이터값) 이렇게 적어야 하는 거구나!! 하고 알았다!
(그리고 여전히 잘못된 range 범위 잡기)

풀면서 뭔가 감이 약간 잡혔던 게 문제를 하나씩 분리해서 뜯어봐야되네... 라는 걸 느꼈다. 그치만 속도는 여전히 느림...ㅠㅠ

그래서 나온 최종 코드...

def solution(x, n):            #함수 정의
    answer = []                #새로운 리스트 생성
    for i in range(n):         #n개만큼 반복
        add = (x + x*1)        #x에다 변수i만큼 더해주기
        answer.append(add)     #리스트에 add값 추가하기
    return answer              #리스트 출력

아!! 했던 게 n개 지니는 리스트가 나와야 되니까 range 로 그냥 n개 만큼 반복하면 되네?! 하면서 이해가 됐다.
그리고 add 부분... x부터 시작해서 x만큼 증가하는 수를 만들어야 돼서 변수(??)i 에다가 x를 곱하는 식이 나오는 건지... 그래서 x * (i + 1) 된 건가...? 라고 이해를 하게 됨...
확실한지는 모른다 ㅋㅋㅋ!!

profile
앞길에 럭키★비키만 있길 ,,,🍀🫧

0개의 댓글