자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

[탐색][시뮬레이션] - 카드 역배치(List)

얄루몬 2022. 7. 1. 17:31

문제

  • 1부터 20까지의 카드를 정해진 구간이 주어지면 그에 맞게 역순으로 정렬한 뒤 10번의 정렬이 끝난 card 배치를 출력하라

문제 풀이

import sys
sys.stdin = open("input.txt", "r")

card = list(range(21)) # 1 ~ 20까지 초기화

for _ in range(10):
    a, b = map(int,input().split())
    x =(b-a+1)//2
    for i in range(x):
        card[a+i], card[b-i] = card[b-i], card[a+i]

for j in card[1::]:
    print(j, end =" ")

  • index를 이용해서 값을 하나씩 저장하고 접근하기 위해서 0부터 저장을 했다. 이는 출력 시에 pop을 사용해 빼버리는 방법도 있으나 슬라이싱 기능을 통해 0을 제외한 나머지 card 리스트를 하나의 숫자로 출력해주었다.