파이썬 기초문법/파이썬_코딩테스트

코딩 테스트 대비! 리스트 뒤집기 - 파이썬으로 "배열 뒤집기" 문제 풀이

Family in August 2024. 5. 7. 15:05
반응형


리스트 뒤집기 - 파이썬으로 "배열 뒤집기" 문제 풀이


문제 설명

정수가 담긴 리스트 nums가 주어지면, 이를 역순으로 뒤집어 출력하는 프로그램을 작성하세요.


제약 조건

- 1 ≤ nums의 길이 ≤ 100
- -100 ≤ nums[i] ≤ 100


예시 입출력

- nums = [1, 2, 3] → [3, 2, 1]
- nums = [4, 3, 5, 1, 2] → [2, 1, 5, 3, 4]


솔루션 코드


def reverse_list(nums):
    start = 0
    end = len(nums) - 1
    
    while start < end:
        nums[start], nums[end] = nums[end], nums[start]
        start += 1
        end -= 1
        
    return nums

# 테스트
print(reverse_list([1, 2, 3]))  # [3, 2, 1] 
print(reverse_list([4, 3, 5, 1, 2]))  # [2, 1, 5, 3, 4]



코드 설명

1. start 인덱스를 0, end 인덱스를 리스트 길이 - 1로 초기화합니다.
2. start가 end보다 작은 동안 반복문을 수행합니다.
3. start와 end 위치의 원소를 서로 바꿉니다.
4. start는 1 증가, end는 1 감소시킵니다.
5. 반복문이 종료되면 뒤집힌 리스트를 반환합니다.

이 풀이의 시간 복잡도는 O(n)이며, 추가적인 공간을 사용하지 않아 공간 복잡도는 O(1)입니다.

이번 문제는 초급 수준의 간단한 리스트 조작 문제입니다. 투 포인터 기법을 활용하여 리스트의 처음과 끝 원소를 바꾸는 방식으로 풀이했습니다. 코딩 테스트에서는 이러한 기본적인 자료구조 다루기도 자주 출제되므로 연습해볼 필요가 있습니다.

반응형