numbers = [2, 3, 5, 7, 11, 13, 17, 19]
# 리스트 뒤집기
# 코드를 입력하세요.
temp = []
for rev in numbers:
temp.insert(0, rev)
numbers = temp
print("뒤집어진 리스트: " + str(numbers))
일단 해당 코드는 본인이 작성했고, insert()
를 사용했기때문에 굉장히 쉽게 풀 수 있었다. 하지만 모를 경우에는?
그걸 대비해서 모범 답안이 있는 것 같다.
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
# 리스트 뒤집기
for left in range(len(numbers) // 2):
# 인덱스 left와 대칭인 인덱스 right 계산
right = len(numbers) - left - 1
# 위치 바꾸기
temp = numbers[left]
numbers[left] = numbers[right]
numbers[right] = temp
print("뒤집어진 리스트: " + str(numbers))
insert()
없을 때는 0은 7과
, 1은 6과
등으로 순서를 바꿔주는 작업이 필요함
그래서 left 에 0이 들어갈때, right = len(numbers) - left - 1
로 하여 right 에 7이 들어갈 수 있도록 해주는 작업을 하는 것이다.
그리고 임시저장소인 temp[0]
에 2
를 넣고, numbers[0]
에는 19
를 넣고, numbers[7]
에는 2
를 넣는 식으로
numbers = [ 19, ?, ?, ?, ?, ?, ?, 2 ]
로 만들 수 있다. 그리고 이를 반복하면 뒤집기가 가능해진다.
여기서 len(numbers) // 2
를 하여 4로 만들어서 반복의 범위를 딱 절반으로 나누는 것이 핵심 포인트라고 생각한다.
그리고 위치 바꾸기는 위의 형식 말고
numbers[right], numbers[left] = numbers[left], numbers[right]
으로 바꾸어도 상관없다고 한다 ( 파이썬 문법 상임 )