공부 자료/알고리즘

(Python/파이썬) 백준 10804번 - 카드 역배치

뚜루뚜루세니 2022. 4. 27. 19:50
728x90

문제출처 : https://www.acmicpc.net/problem/10804

 

10804번: 카드 역배치

1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다. 

www.acmicpc.net

1. 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#순서 바꾸기 -> 슬라이스 기능
#배열 순서 뒤집을 땐 [::-1] 이용
 
card = [i for i in range(1,21)]
for _ in range(10):
    a,b = map(int,input().split())
    #인덱스 0부터 시작하려고
    a-=1
    #리스트에서 index a부터 b까지 잘라서 리스트로 반환
    #[::-1] -> 역으로 뒤집
    card[a:b] = card[a:b][::-1]
    
for i in card:
    print(i, end = ' ')
cs

 

2. 해결과정

파이썬에는 슬라이스 기능이 존재한다.

리스트의 순서를 뒤집을 땐 [::-1]을 사용해주면 된다.

  • 우선 카드에 1부터 20까지 선언을 해준다.
  • a에 1을 빼주는 이유는 index를 편하게 계산하기 위해서(index는 0부터 시작이니까)]
  • 카드를 뒤바꿀 위치만 [::-1]을 선언해서 바꿔주고, 나머지는 위치를 바꾸지 않는다.
  • 출력해주면 됨
728x90