프로그래머스 파이썬 기초 해석 :: 마지막 두 원소 (list[-1])

    

프로그래머스 URL

https://school.programmers.co.kr/learn/courses/30/lessons/181927



프로그래머스 코딩 카테고리 

코딩 기초 트레이닝

Day 6 조건문, 반복문 - 마지막 두 원소    

Lv.0





문제 설명

정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.


num_list                 result
[2, 1, 6]                 [2, 1, 6, 5]
[5, 2, 1, 7, 5]                [5, 2, 1, 7, 5, 10]



제한 사항

2 ≤ num_list의 길이 ≤ 10

1 ≤ num_list의 원소 ≤ 9




문제 이해

[입력] 정수 리스트

[출력] 정수 리스트

리스트 추가 - array.append(value) 메서드 활용 

if문으로 마지막 값이랑 그 전 원소값 크기 비교 




------------------------



내가 푼 풀이

def solution(num_list):
    last = num_list[-1]
    before =  num_list[-2] 
    
    if last > before:
        num_list.append(last - before)
    else: 
        num_list.append(last * 2)
    
    return num_list





배운점

1. 마지막 인덱스 값 구하는 방법 

마지막 인덱스 자리를 구하기 위해서 num_list[len(num_list)] 로 두니까 계속 오버인덱스 오류가 났다. 

왜냐하면, len()은 리스트 길이를 나타내서 마지막 인덱스 자리 + 1 값이다. 
그래서 마지막 인덱스를 len()으로 구할려면, [len(num_list)-1] 해야한다. 

(마지막 인덱스 값 [-1]으로 쓰는게 더 편하긴 하지만, 처음에는 생각하지 못하고 len() 함수를 사용함)


num_list[len(num_list)-1] 과 num_list[-1] 는 같다
  



2. 변수 동시 선언 

n1, n2 = num_list[-1], num_list[-2] 처럼 변수를 한번에 선언 가능




3. append( 한줄 if문 )  

append 메서드 안에서, if문을 실행시켜서 바로 리스트에 추가하는 방법 

def solution(n):

    n.append(n[-1]-n[-2] if n[-1]>n[-2] else n[-1]*2)

    return n






댓글

이 블로그의 인기 게시물

[KT 에이블스쿨 - IT 트랜드] 국내외 AI 관련 규제

KT 에이블스쿨 : 핀테크 아이디어 공모전

KT 에이블스쿨 : 6-7차 미니프로젝트 - 제안서 기반 솔류션 기획 및 설계