컴퓨터는 잘못이 없다..

[Python]프로그래머스 강의_파이썬을 파이썬 답게 파트4. Iterable 다루기_i번째 원소와 i+1번째 원소(파이썬 abs(절대값), zip) 본문

공부/Python

[Python]프로그래머스 강의_파이썬을 파이썬 답게 파트4. Iterable 다루기_i번째 원소와 i+1번째 원소(파이썬 abs(절대값), zip)

도토리까꿍v 2021. 5. 7. 14:33
Contents 접기

#문제 링크

파이썬을 파이썬답게 - i번째 원소와 i+1번째 원소 | 프로그래머스 (programmers.co.kr)

 

파이썬을 파이썬답게 - i번째 원소와 i+1번째 원소

본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코

programmers.co.kr

 

#문제

문제 설명
숫자를 담은 리스트 mylist가 solution 함수의 파라미터로 주어집니다. 
solution 함수가 mylist의 i번째 원소와 i+1번째 원소의 차를 담은 
일차원 리스트에 차례로 담아 리턴하도록 코드를 작성해주세요.

단, 마지막에 있는 원소는 (마지막+1)번째의 원소와의 차를 구할 수 없으니,
이 값은 구하지 않습니다.

제한 조건
mylist의 길이는 1 이상 100 이하인 자연수입니다.
mylist의 원소는 1 이상 100 이하인 자연수입니다.

예시
mylist와	output
[83, 48, 13, 4, 71, 11]	[35, 35, 9, 67, 60]

설명:
83과 48의 차는 35입니다.
48과 13의 차는 35입니다.
13과 4의 차는 9입니다.
4와 71의 차는 67입니다.
71과 11의 차는 60입니다.
따라서 [35, 35, 9, 67, 60]를 리턴합니다.

 

#내가 푼 답안

def solution(mylist):
    answer = []
    for i in range(len(mylist)-1) : #예시 range=5 즉, i=0,1,2,3,4
        answer.append(abs(mylist[i]-mylist[i+1]))
    return answer

▲len과 index를 이용해 각 원소에 접근하여 해결하였다. 

 

#강의에서 제시한 답안

def solution(mylist):
    answer = []
    for number1, number2 in zip(mylist, mylist[1:]) :
        answer.append(abs(number1-number2))
    return answer

▲파이썬의 zip을 이용하면 index를 사용하지 않고 각 원소에 접근할 수 있다. 

단, zip 함수에 서로 길이가 다른 리스트가 인자로 들어오는 경우에는 길이가 짧은 쪽 까지만 이터레이션이 이루어진다. 더 자세한 내용은 공식 레퍼런스 - zip

 

 

#문제 해설 링크

파이썬을 파이썬답게 - i번째 원소와 i+1번째 원소 - zip | 프로그래머스 (programmers.co.kr)

 

파이썬을 파이썬답게 - i번째 원소와 i+1번째 원소 - zip

본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코

programmers.co.kr

 

Comments