728x90
반응형
문제
https://www.acmicpc.net/problem/10811
n과 m에 해당하는 정수 두 개를 입력받음
0부터 n까지의 숫자를 저장하고 있는 리스트 생성 (바구니 번호와 리스트 번호 일치시키기 위함)
n, m = list(map(int, input().split()))
l = [i for i in range(n+1)]
m번 반복하여 진행
i, j에 해당하는 두 개의 정수 입력받음
i번째부터 j번째까지의 중앙지점을 찾음
i번째부터 중앙 지점까지 반복해가며 부분 리스트(i ~ j 번째까지)의 요소의 앞과 뒤의 요소를 바꿔 역순으로 배열
- 예) i: 1, j: 4
[1] <-> [4]
[2] <-> [3]
for _ in range(m):
i, j = list(map(int, input().split()))
end = (i + j + 1) // 2
n = 0
for idx in range(i, end):
l[idx], l[j-n] = l[j-n], l[idx]
n += 1
리스트의 1번째 요소부터 출력
for v in l[1:]:
print(v, end=' ')
전체 코드
n, m = list(map(int, input().split()))
l = [i for i in range(n+1)]
for _ in range(m):
i, j = list(map(int, input().split()))
end = (i + j + 1) // 2
n = 0
for idx in range(i, end):
l[idx], l[j-n] = l[j-n], l[idx]
n += 1
for v in l[1:]:
print(v, end=' ')
728x90
반응형
'코딩 > 공부' 카테고리의 다른 글
[Python] 백준 27866번 - 문자와 문자열 (0) | 2023.10.12 |
---|---|
[Python] 백준 1546번 - 평균 (0) | 2023.10.11 |
[Python] 백준 3052번 - 나머지 (0) | 2023.10.11 |
[Python] 백준 5597번 - 과제 안 내신 분..? (0) | 2023.10.11 |
[Python] 백준 10813번 - 공 바꾸기 (0) | 2023.10.11 |