✔️ 문제
🗝️ 풀이 및 답
파이썬 풀이
N, M = map(int, input().split())
arr = [i for i in range(1, N+1)]
temp = 0
for _ in range(M):
i, j = map(int, input().split())
temp = arr[i-1:j]
temp.reverse()
arr[i-1:j] = temp
for x in range(N):
print(arr[x], end=" ")
리스트의 reverse() 함수
새로운 리스트를 생성하지 않고 기존 리스트 내의 원소들을 제자리에서(in place) 역방향으로 재배치
letters = ['A', 'B', 'C', 'D', 'E']
print(letters) # ['A', 'B', 'C', 'D', 'E']
letters.reverse()
print(letters) # ['E', 'D', 'C', 'B', 'A']
- 어떤 리스트를 상대로 reverse() 함수를 호출하면 실제로 해당 리스트에 변경을 가해진다는 것
- 리스트 객체의 reverse() 함수가 아무것도 반환하지 않으므로 역순으로 재배치된 새로운 리스트를 만들어내는 것이 아니기 때문에
None
을 반환
reversed() 함수로 거꾸로 루프 돌리기 (vs. slicing 연산자 & reverse() 함수)
해당 내용은 아래 개념 링크 참고
'Algorithm. > BackJoon' 카테고리의 다른 글
백준 python : 9086 문자열 (1) | 2023.12.23 |
---|---|
백준 python : 1546 평균 (0) | 2023.12.23 |
[백준 3052] 나머지 (1) | 2023.12.23 |
[백준 5597] 과제 안 내신 분..? (1) | 2023.12.23 |
[백준 18108] 1998년생인 내가 태국에서는 2541년생?! (0) | 2023.12.09 |