[Python-CodingTest] 3-3. 카드 역배치
카드 역배치
문제 정리
입력
5 10
9 13
1 2
3 4
5 6
1 2
3 4
5 6
1 20
1 20
처리 과정
- 카드 리스트 생성
- 구간의 src와 dest를 입력받기
- 주어진 구간에서 위치가 대칭인 두 수를
swap
- 카드 리스트는 인덱스 0부터 인덱스 20까지 총 21개였기 때문에 인덱스 0을
pop
출력
1 2 3 4 10 9 8 7 13 12 11 5 6 14 15 16 17 18 19 20
풀이
import sys
sys.stdin = open("./input/in3.txt", "rt")
# 파이썬에서의 swap
# a,b=b,a
card = list(range(21)) # 0부터 20까지 리스트화
for _ in range(10): # 변수 없이 반복
src,dest=map(int,input().split())
# 주어진 구간에서 위치가 대칭인 두 수를 swap
for i in range((dest-src+1)//2):
card[src+i],card[dest-i] = card[dest-i], card[src+i]
# 맨 앞의 0을 버리고 출력해야 함
card.pop(0)
for x in card:
print(x,end=' ')
정리
- 리스트 생성 & 초기화:
list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- 파이썬에서의 swap:
a,b = b,a
- 시작이 a, 끝이 b인 구간에서 reverse를 하려면 for문의 범위는
range((b-a+1)//2)
- 리스트의 맨 앞을 pop:
lst.pop(0)
💛 개인 공부 기록용 블로그입니다. 👻