알고리즘 공부

[백준 11728번] 배열 합치기 python

gyk7 2024. 8. 5. 19:01

(리스트 합치기)

1. + 연산자를 이용한 방법

입력

A = [3, 5]

B = [2, 9] 일때

 

출력으로

 

2. extend()를 사용하는 방법

똑같이 입력했을 때

 

출력으로

 

[구현한 코드]

N, M = map(int, input().split())

li = []

A = list(map(int, input().split()))
# print(A)

B = list(map(int, input().split()))
# print(B)

li = A + B
li.sort()
print(*li)

 


+

- map()을 사용한 방법

list1 = [[1, 10], [2, 22], [3, 19]]
list2 = [[4, 2], [5, 9], [6, 3]]
merged_list = [[1, 10, 4, 2], [2, 22, 5, 9], [3, 19, 6, 3]]

 

결과로 merged_list를 만들어 내고 싶다면

 

merged_list = list(map(list.__add__, list1, list2))
print(merged_list)

이렇게 map을 활용하면 된다.

 

- flatten(평탄화)

위의 merged_list의 내부의 모든 리스트를 하나의 리스트로 만들기 위해 itertools를 사용하면 된다.

 chain(*merged_list)처럼 *를 리스트에 붙여주어야 한다.

list3 = list(itertools.chain(*merged_list))
print(list3)

 

출력으로

 

이렇게 하나의 리스트로 나오게 된다.

 

- zip()을 활용한 방법

list1 = [[1, 10], [2, 22], [3, 19]]
list2 = [[4, 2], [5, 9], [6, 3]]
merged_list = [([1, 10], [4, 2]), ([2, 22], [5, 9]), ([3, 19], [6, 3])]

 

merged_list를 다음과 같이 나오게 하려면 zip()을 활용할 수 있다.

zip()을 활용하면 단순히 동일한 위치의 list를 하나의 tuple로 만들어준다.

list1 = [[1, 10], [2, 22], [3, 19]]
list2 = [[4, 2], [5, 9], [6, 3]]

merged_list = list(zip(list1, list2))
print(merged_list)

 

출력으로

 

이렇게 나온다.