이 튜토리얼에서는 두 개의 리스트를 하나로 병합한 뒤, 결과 리스트를 정렬된 상태로 출력하는 파이썬 프로그램을 작성해 보겠습니다. 먼저 예시를 통해 어떤 동작을 수행하는지 살펴보겠습니다.
문제 이해하기
정렬되어 있지 않은 두 개의 리스트가 주어졌을 때, 두 리스트를 합친 후 전체를 오름차순으로 정렬하는 것이 목표입니다.
입력: list_1 = [1, 3, 2, 0, 3] list_2 = [20, 10, 23, 43, 56, -1] 출력: [-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]
숫자뿐만 아니라 문자열 리스트에도 동일하게 적용할 수 있습니다.
입력: list_1 = ["hafeez", "aslan"] list_2 = ["abc", "kareem", "b"] 출력: ["abc", "aslan", "b", "hafeez", "kareem"]
알고리즘
구현은 매우 간단합니다. 다음 단계를 따라 코드를 작성해 보겠습니다.
1. 두 개의 리스트를 초기화합니다. 2. + 연산자를 사용해 두 리스트를 연결하고, 결과를 새로운 변수에 저장합니다. 3. 리스트의 sort() 메서드를 사용해 결과 리스트를 정렬합니다. 4. 정렬된 리스트를 출력합니다.
예제 1: 숫자 리스트
위 알고리즘을 실제 코드로 구현하면 다음과 같습니다.
## 리스트 초기화 list_1 = [1, 3, 2, 0, 3] list_2 = [20, 10, 23, 43, 56, -1] ## 두 리스트 연결 new_list = list_1 + list_2 ## sort() 메서드로 새 리스트 정렬 new_list.sort() ## 정렬된 리스트 출력 print(new_list)
출력 결과
위 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
[-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]
예제 2: 문자열 리스트
이번에는 같은 로직을 문자열 리스트에 적용해 보겠습니다.
## 리스트 초기화 list_1 = ["hafeez", "aslan"] list_2 = ["abc", "kareem", "b"] ## 두 리스트 연결 new_list = list_1 + list_2 ## sort() 메서드로 새 리스트 정렬 new_list.sort() ## 정렬된 리스트 출력 print(new_list)
출력 결과
프로그램을 실행하면 문자열이 사전 순(알파벳 순)으로 정렬된 것을 확인할 수 있습니다.
['abc', 'aslan', 'b', 'hafeez', 'kareem']
추가 팁: sorted() 함수 활용하기
원본 리스트를 변경하지 않고 새로운 정렬된 리스트를 만들고 싶다면 내장 함수 sorted()를 사용할 수도 있습니다.
list_1 = [1, 3, 2, 0, 3] list_2 = [20, 10, 23, 43, 56, -1] new_list = sorted(list_1 + list_2) print(new_list)
sort() 메서드는 원본 리스트 자체를 정렬하는 반면, sorted() 함수는 정렬된 새로운 리스트를 반환한다는 차이점이 있습니다. 상황에 맞게 선택해서 사용하면 됩니다.
마무리
이처럼 파이썬에서는 + 연산자와 sort() 메서드만으로도 두 리스트를 손쉽게 병합하고 정렬할 수 있습니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.