더북(TheBook)

잠깐만요

2차원 배열을 1차원으로 만드는 방법은 크게 두 가지입니다.

1. 라이브러리를 사용합니다.

a. itertools.chain(<2차원 배열>)로 사용할 수 있으며, 실행하는 즉시 1차원 함수로 만듭니다.

b. functools.reduce(<원소 조작 함수>, <2차원 배열>)로 사용할 수 있으며, lambda 또는 함수를 사용해 주어진 자료 구조를 조작(전체 조회 + 필터링)할 때 자주 사용합니다. 이번 문제에서는 reduce(lambda x, y :x + y, arr)로 접근할 수 있습니다.

2. 리스트 컴프리헨션을 사용합니다. [y for x in lists for y in x] 형태로 2중 for 문을 사용한 것과 동일하지만, 한 줄로 모든 것을 구현할 수 있다는 장점이 있습니다.

이번 코드에서는 2번 방식을 사용했습니다.

이 외에도 가능한 방법이 몇 가지 더 있지만, 속도 문제 때문에 잘 사용하지 않습니다. 라이브러리를 사용해도 무방하나 통상적으로 리스트 컴프리헨션으로 처리하는 경우가 많으니 외우면 좋습니다.

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.