반응형
1)
n, m = map(int, input().split())
# 바구니 순서 리스트 생성
basket = list(range(1, n+1))
for i in range(m):
start, end = map(int, input().split())
# 해당 구간 역순으로 바구니 순서 변경
basket[start-1:end] = basket[start-1:end][::-1]
# 최종적으로 바뀐 바구니 순서 출력
for b in basket:
print(b, end=" ")
- 첫 번째 줄에서는 바구니의 총 개수 n과 바구니의 순서를 역순으로 만들 횟수 m을 입력받습니다.
- 두 번째 줄부터 m개의 줄에서는 바구니의 순서를 역순으로 만드는 방법이 주어집니다.
- start와 end는 바구니 순서를 역순으로 만들 범위를 뜻합니다.
- start번 바구니부터 end번 바구니까지의 순서를 역순으로 만듭니다.
- 바구니의 순서를 나타내는 리스트 basket를 생성합니다. range 함수를 사용하여 1부터 n까지의 수를 리스트로 만듭니다.
- for문을 이용하여 m번 순서를 역순으로 바꿉니다.
- basket[start-1:end]를 이용하여 해당 구간의 바구니를 잘라냅니다.
- [::-1]을 이용하여 구간의 바구니 순서를 역순으로 변경합니다.
- 다시 잘라낸 구간에 변경된 바구니 순서를 적용합니다.
- for문을 이용하여 최종적으로 바뀐 바구니 순서를 출력합니다. end=" "를 사용하여 바구니 사이에 공백을 넣습니다.
2)
n, m = map(int, input().split())
basket = list(range(1, n+1))
for i in range(m):
start, end = map(int, input().split())
temp = basket[start-1:end]
temp.reverse()
basket[start-1:end] = temp
print(*basket)
- 첫 번째 줄에서 n과 m을 입력받습니다.
- 두 번째 줄에서 1부터 n까지의 번호가 순서대로 적힌 리스트인 basket을 만듭니다.
- 이후 m번 반복하여 바구니 순서를 역순으로 만듭니다.
- i번째 구간을 입력받아서 해당 구간의 바구니 순서를 temp 변수에 저장합니다.
- temp를 역순으로 뒤집은 값을 다시 temp에 저장합니다.
- 역순으로 바뀐 temp를 원래 리스트인 basket의 해당 구간에 할당합니다.
- 최종적으로 *basket을 사용하여 리스트의 모든 요소를 출력합니다.
예를 들어, n이 5이고, m이 3이라면, basket은 [1, 2, 3, 4, 5]가 됩니다.
- 첫 번째 구간은 2번째 바구니부터 4번째 바구니까지를 역순으로 만들어야 하므로, temp 변수에는 [2, 3, 4]가 저장됩니다.
- temp를 뒤집은 값 [4, 3, 2]가 다시 temp에 저장됩니다.
- basket[1:4] = [4, 3, 2]를 실행하여 [1, 4, 3, 2, 5]가 됩니다.
- 두 번째 구간은 1번째 바구니부터 2번째 바구니까지를 역순으로 만들어야 하므로, temp 변수에는 [1, 4]가 저장됩니다.
- temp를 뒤집은 값 [4, 1]가 다시 temp에 저장됩니다.
- basket[0:2] = [4, 1]를 실행하여 [4, 1, 3, 2, 5]가 됩니다.
- 세 번째 구간은 3번째 바구니부터 5번째 바구니까지를 역순으로 만들어야 하므로, temp 변수에는 [3, 2, 5]가 저장됩니다.
- temp를 뒤집은 값 [5, 2, 3]이 다시 temp에 저장됩니다.
- basket[2:5] = [5, 2, 3]를 실행하여 [4, 1, 5, 2, 3]이 됩니다.
반응형
'Algorithm > baekjoon' 카테고리의 다른 글
[백준 11654 파이썬/python] 아스키코드 (0) | 2023.03.04 |
---|---|
[백준 1546 파이썬/python] 평균 (0) | 2023.03.03 |
[백준 3052 파이썬/python] 나머지 (0) | 2023.03.03 |
[백준 5597 파이썬/python] 과제 안 내신 분..? (0) | 2023.03.03 |
[백준 10813 파이썬/python] 공 바꾸기 (0) | 2023.03.03 |