일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- ConMatch
- dann paper
- CycleGAN
- Pseudo Label
- mme paper
- CoMatch
- shrinkmatch
- cifar100-c
- semi supervised learnin 가정
- 딥러닝손실함수
- simclrv2
- WGAN
- tent paper
- remixmatch paper
- mocov3
- Meta Pseudo Labels
- CGAN
- dcgan
- BYOL
- Pix2Pix
- 백준 알고리즘
- GAN
- 최린컴퓨터구조
- Entropy Minimization
- UnderstandingDeepLearning
- shrinkmatch paper
- 컴퓨터구조
- adamatch paper
- conjugate pseudo label paper
- SSL
Archives
- Today
- Total
Hello Data
백준 알고리즘 10811번 [바구니 뒤집기] 파이썬 본문
https://www.acmicpc.net/problem/10811
10811번: 바구니 뒤집기
도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2
www.acmicpc.net
이전 배열 문제랑 비슷한 형식
N : 번호가 적혀있는 바구니의 개수
M : 뒤집는 횟수
M에 따라 반복문을 돌려주고, 횟수마다 i, j 를 지정한다. i번째부터 j번째까지의 숫자를 역순으로 한다.
반복문 안에 반복문을 또 만드는데 여기서 횟수는 j - i + 1이다.
기존 i번째 숫자는 다른 곳에 저장해놨다가, j번째 바구니에 할당하고, i번째와 j번째 바구니의 순서를 바꾼다. 나는 주로 리스트를 만들 때 0을 포함해서 만들고 나중에 출력할 때 0을 제외하는 방식을 사용한다. 인덱스를 따로 1빼고 하는 것이 번거롭다.
n, m = map(int, input().split())
pocket = [i for i in range(0, n+1)]
for _ in range(m):
i, j = map(int, input().split())
r = j - i + 1
for k in range(r // 2):
temp = pocket[i]
pocket[i] = pocket[j]
pocket[j] = temp
i += 1
j -= 1
for i in pocket[1:]:
print(i, end = ' ')
'백준알고리즘 > 구현' 카테고리의 다른 글
백준 알고리즘 10798번 [세로읽기] 파이썬 (0) | 2023.04.15 |
---|---|
백준 알고리즘 2566번 [최댓값] 파이썬 (0) | 2023.04.15 |
백준 알고리즘 10988번 [펠린드롬인지 확인하기] 파이썬 (0) | 2023.04.14 |