Programmers/코딩 기초 트레이닝

[프로그래머스] 배열의 원소만큼 추가하기

jjam-mo 2024. 2. 10. 16:11

 

몇 번을 보고 내가 생각하는대로 코드를 써봐도 자꾸 오류가 나고 하나만 맞고 그래서 뭔지 몰라 검색을 해봤다!!

 

<나 말고 남이 쓴 코드>

def solution(arr):
    answer = []
    for i in arr:
        answer += [i]*i
    return answer

 

봐도 이해가 가진 않는다. 특히 4번째 줄...[i]가 어디에 해당하는지 모르겠다. 아니면 아무런 관계가 없는 것인가!!!!ㅠㅠ

 

(누가 좀 자세하게 알려주세요!!ㅠㅠㅠ)

 

<나 말고 남이 쓴 코드>

def solution(arr):
    answer = []
    
    for i in arr:
        for j in range(i):
            answer.append(i)
    
    return answer

 

차라리 이것은 어느정도 이해가 된다. for i in arr에서 i가 arr의 요소이고

for j in range(i)는 0부터 i(arr 요소)까지 answer에 i(arr 요소)를 추가해라.

 

예를 들어 arr의 첫번재 요소가 5이면 0부터 4까지 (총 5번) 5를 answer에 5번 추가해라 이런 뜻이라 이해가 된다.

 

<내가 쓴 오답 코드>

def solution(arr):
    answer = []
    for i in range(len(arr)):
        answer.append(arr[i]*arr[i])
    return answer

 

딱 봐도 4번째 줄이 그냥 제곱과 같은 말이라 이걸 어떻게 해결해야 할지 모른채 계속 고민했는데...

 

아직은 해결하기 어려운 것 같다. 공부하면서 조금씩 실력을 늘려보자!! 파이팅!!!