반응형
리스트 뒤집기 - 파이썬으로 "배열 뒤집기" 문제 풀이
문제 설명
정수가 담긴 리스트 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)입니다.
이번 문제는 초급 수준의 간단한 리스트 조작 문제입니다. 투 포인터 기법을 활용하여 리스트의 처음과 끝 원소를 바꾸는 방식으로 풀이했습니다. 코딩 테스트에서는 이러한 기본적인 자료구조 다루기도 자주 출제되므로 연습해볼 필요가 있습니다.
반응형
'파이썬 기초문법 > 파이썬_코딩테스트' 카테고리의 다른 글
코딩 테스트 대비! 파이썬으로 "세 수의 합" 문제 풀이 (0) | 2024.05.08 |
---|---|
코딩 테스트 대비! 파이썬으로 "주식 사고팔기 가장 좋은 시점" 문제 풀이 (0) | 2024.05.08 |
코딩 테스트 대비! 파이썬으로 "두 정렬 리스트의 병합" 문제 풀이 (0) | 2024.05.08 |
코딩 테스트 대비! 파이썬으로 "유효한 팰린드롬(회문 - 뒤에서 부터 읽어도 똑같은 문자)" 문제 풀이 (0) | 2024.05.07 |
코딩 테스트 대비! 파이썬으로 "두 수의 합" 알고리즘 문제 풀이 (0) | 2024.05.07 |