본문 바로가기

PS/백준

[BOJ] 백준 10812 바구니 순서 바꾸기 (Swift)

반응형

문제

https://www.acmicpc.net/problem/10812

 

10812번: 바구니 순서 바꾸기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2

www.acmicpc.net

풀이

먼저 1부터 n까지 적힌 바구니배열로 만들어 줍시다.
그 이후 i, j, k를 m번 입력을 받아서 순서를 회전해주어야 합니다.

i, i + 1 ... k, k + 1... j - 1, j 와 같은 순서로 되어있는 바구니를
k, k + 1 ... j - 1, j ... i, i + 1... k - 1 과 같은 순서로 바꾸어주어야 합니다.

어떻게 순서를 바꿀 수 있을까요?

저는 기존 바구니 배열에서 k ~ j까지, i부터 k - 1 까지의 배열을 새로 만들어 주었습니다.
그 이후 기존의 바구니 배열의 i ~ j새로 만든 배열로 교체를 해주면 끝 입니다.
replaceSubrange 메서드를 사용하여 쉽게 구현할 수 있습니다.

소스코드

후기

순서를 바꾼 새로운 배열을 만들어서 갈아 끼워주면 쉽게 풀 수 있는 문제입니다.
replaceSubrange 메서드를 안다면 더 직관적으로 풀 수 있는 문제입니다.

반응형