[python] - 마지막 두 원소

오유민·2024년 4월 8일
0

프로그래머스

목록 보기
8/10

def solution(num_list):
    
    if num_list[-2] < num_list[-1]:
        num_list.append(num_list[-1]-num_list[-2])
        # 중요 - append() 메서드는 None을 반환 #
    else:
        num_list.append(num_list[-1]*2)
        
    return num_list

처음에 answer = num_list.append(num_list[-1]-num_list[-2]) 했다가 틀림. 이유는

num_list.append(num_list[-1] - num_list[-2])와 answer = num_list.append(num_list[-1] - num_list[-2])는 서로 다른 동작을 수행합니다.

num_list.append(num_list[-1] - num_list[-2]): 이 코드는 num_list 리스트의 마지막 원소와 그 이전 원소의 차를 계산한 후, 그 결과를 num_list 리스트에 추가합니다. 즉, num_list 리스트를 변경하고, append() 메서드는 None을 반환하기 때문에 num_list에 새로운 요소가 추가되긴 하지만, answer 변수에는 반환되는 값인 None이 할당됩니다.

answer = num_list.append(num_list[-1] - num_list[-2]): 이 코드는 먼저 num_list 리스트의 마지막 원소와 그 이전 원소의 차를 계산한 후, 그 결과를 num_list 리스트에 추가합니다. 그런 다음, append() 메서드는 None을 반환하고, 이 반환된 None이 answer 변수에 할당됩니다. 즉, answer 변수에는 None이 할당되며, num_list 리스트에는 새로운 요소가 추가됩니다.

따라서 두 코드의 차이는 num_list의 변경 여부와 answer 변수에 할당되는 값의 차이입니다. 첫 번째 코드는 num_list를 변경하고 answer에는 아무런 의미 없는 None이 할당되지만, 두 번째 코드는 num_list를 변경하고 answer에는 None이 할당됩니다.
(출처: chat-GPT)

profile
개발자연습생의 개발 일기

0개의 댓글