프로그래머스 파이썬 기초 해석 :: 마지막 두 원소 (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
댓글
댓글 쓰기