
❓ 문제
백준 브론즈 2 문제 > 바구니뒤집기
❗ 해결
배열을 인덱싱해서 뒤집어줘야 하므로 투포인터로 뒤집는게 떠올라서 투포인터로 풀었다.
if __name__ == "__main__":
N, M = map(int, input().split())
s = [i + 1 for i in range(N)]
for _ in range(M):
start, end = map(int, input().split())
while start < end:
s[start-1], s[end-1] = s[end-1], s[start-1]
start += 1
end -=1
print(*s)
바구니는 1번부터 N번까지 순서대로 적혀져 있다고 했다.
s는 바구니 리스트이다.
i, j를 입력받고 i번째 바구니부터 j번째 바구니의 순서를 역순으로 만든다.
즉 start, end를 입력받고 start index가 end index 보다 커질 때 까지 배열의 위치를 바꾼다.
배열의 위치를 바꿔주고 왼쪽 포인터(start)는 +1, 오른쪽 포인터(end)는 -1 해준다.
그 뒤 예제 출력은 배열 형식이 아닌 순서를 공백으로 구분하므로 예제에 맞게 출력해준다.