Coding 01

백준[10812]번: 바구니 순서 바꾸기 ( Java ) 본문

백준

백준[10812]번: 바구니 순서 바꾸기 ( Java )

하루우울루 2023. 2. 23. 18:30

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

 

10812번: 바구니 순서 바꾸기

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

www.acmicpc.net

개발환경은 eclipse를 사용했습니다.

 

 

Code

import java.util.*;
import java.io.*;

public class Main
{
	public static void main(String[] args) throws IOException  
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringBuilder sb = new StringBuilder();
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());
		
		int[] arr = new int[n];
		
		for(int i=0;i<n;i++)
		{
			arr[i] = i+1;
		}
		
		for(int r=0;r<m;r++)
		{
			st = new StringTokenizer(br.readLine());
			
			int i = Integer.parseInt(st.nextToken());
			int j = Integer.parseInt(st.nextToken());
			int k = Integer.parseInt(st.nextToken());
			
			int[] NewArr = new int[j-i+1];
			int t = 0;
			
			for(int p=k-1;p<j;p++)
			{
				NewArr[t] = arr[p];
				t++;
			}
			
			for(int p=i-1;p<k-1;p++)
			{
				NewArr[t] = arr[p];
				t++;
			}
			
			int t2 = 0;
			
			for(int p=i-1;p<j;p++)
			{
				arr[p] = NewArr[t2];
				t2++;
			}
			
		}
		
		for(int r=0;r<n;r++)
		{
			bw.write(arr[r] + " ");
		}
		
		br.close();
		bw.close();
	}
}

 

for(int p=k-1;p<j;p++)
{
NewArr[t] = arr[p];
t++;
}

과 

for(int p=i-1;p<k-1;p++)
{
NewArr[t] = arr[p];
t++;
}

으로 mid값에서 end 값까지, end부터 begin순서로 배열에 저장했다.

 

그리고

for(int p=i-1;p<j;p++)
{
arr[p] = NewArr[t2];
t2++;
}

통해서 arr에 바꾼 값들을 저장했다.