컴퓨터는 잘못이 없다..

[Python]프로그래머스 강의_파이썬을 파이썬 답게 파트4. Iterable 다루기_2차원 리스트 뒤집기(파이썬 ) 본문

공부/Python

[Python]프로그래머스 강의_파이썬을 파이썬 답게 파트4. Iterable 다루기_2차원 리스트 뒤집기(파이썬 )

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

#문제 링크

파이썬을 파이썬답게 - 2차원 리스트 뒤집기 | 프로그래머스 (programmers.co.kr)

 

파이썬을 파이썬답게 - 2차원 리스트 뒤집기

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

programmers.co.kr

 

 

#문제

문제 설명

다음을 만족하는 함수, solution을 완성해주세요.

  • solution 함수는 이차원 리스트, mylist를 인자로 받습니다
  • solution 함수는 mylist 원소의 행과 열을 뒤집은 한 값을 리턴해야합니다.

예를 들어 mylist [[1, 2, 3], [4, 5, 6], [7, 8, 9]]가 주어진 경우, solution 함수는 [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 을 리턴하면 됩니다.

 

제한 조건

  • mylist의 원소의 길이는 모두 같습니다.
  • mylist의 길이는 mylist[0]의 길이와 같습니다.
  • 각 리스트의 길이는 100 이하인 자연수입니다.

 

#내가 푼 답안

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

▲이중 for문으로 구현하였다.

 

 

 

#강의에서 제시한 답안

mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = list(map(list, zip(*mylist)))

▲강의에서는 zip과 unpacking을 이용해 해결하는 방법을 제시하였다. 

 

#zip이란?

zip(*iterables)는 각 iterables 의 요소들을 모으는 이터레이터를 만듭니다.
튜플의 이터레이터를 돌려주는데, i 번째 튜플은 각 인자로 전달된 시퀀스나 이터러블의 i 번째 요소를 포함합니다.

 

┌사용예

mylist = [1, 2, 3]
new_list = [40, 50, 60]
for i in zip(mylist, new_list):
    print (i)

출력
(1, 40)
(2, 50)
(3, 60)

 

#zip의 또다른 사용 예 #1 -  - 여러 개의 Iterable 동시에 순회할 때 사용

list1 = [1, 2, 3, 4]
list2 = [100, 120, 30, 300]
list3 = [392, 2, 33, 1]
answer = []
for number1, number2, number3 in zip(list1, list2, list3):
   print(number1 + number2 + number3)
   
출력
493
124
66
305

 

#zip의 또다른 사용 예 #2 - Key 리스트와 Value 리스트로 딕셔너리 생성하기

animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}

▲파이썬의 zip 함수와 dict 생성자를 이용하면 코드 단 한 줄로, 두 리스트를 합쳐 딕셔너리로 만들 수 있다. 

 

 

#문제 해설 링크

파이썬을 파이썬답게 - 2차원 리스트 뒤집기 - ⭐️zip⭐️ | 프로그래머스 (programmers.co.kr)

 

파이썬을 파이썬답게 - 2차원 리스트 뒤집기 - ⭐️zip⭐️

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

programmers.co.kr

 

Comments