[Python]_리스트 뒤집기

hanseungjune·2022년 6월 10일
0

Python

목록 보기
19/38

풀이

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]

으로 바꾸어도 상관없다고 한다 ( 파이썬 문법 상임 )

profile
필요하다면 공부하는 개발자, 한승준

0개의 댓글