[백준] 10812번 바구니 순서 바꾸기 Java 문제 풀이
2023. 3. 15. 18:06ㆍ알고리즘/백준
728x90
반응형
문제풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
interface Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
String[] input = br.readLine().split(" ");
int N = Integer.parseInt(input[0]), M = Integer.parseInt(input[1]);
List<Integer> list = new ArrayList<Integer>();
for(int i=0; i< N; i++) {
list.add(i+1);
}
int i, j, k;
for(int a=0; a < M; a++) {
input = br.readLine().split(" ");
i = Integer.parseInt(input[0]);
j = Integer.parseInt(input[1]);
k = Integer.parseInt(input[2]);
int val = list.get(i-1);
int end = list.get(k-1);
while(val != end) {
list.remove(i-1);
list.add(j-1, val);
val = list.get(i-1);
}
}
for(int a=0; a< N; a++) {
sb.append(list.get(a) + " ");
}
System.out.println(sb);
}
}
i 부터 k 까지의 값들을 모두 j에 있는 값 뒤로 보내면 됩니다.
값 하나씩 뒤로 보냅니다.
i 위치에 있는 값을 val에 저장하고, 반복을 종료할 값을 end에 저장합니다.
i 위치에 있는 값을 삭제해 주고 그 값을 j 위치에 넣어줍니다.
마지막으로 다시 i 위치에 있는 값을 val에 저장합니다.
출처 : https://www.acmicpc.net/problem/10812
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 25206번 너의 평점은 Java 문제 풀이 (0) | 2023.03.17 |
---|---|
[백준] 10988번 팰린드롬인지 확인하기 Java 문제 풀이 (0) | 2023.03.16 |
[백준] 2444번 별 찍기 - 7 Java 문제 풀이 (0) | 2023.03.14 |
[백준] 9086번 문자열 Java 문제 풀이 (0) | 2023.03.14 |
[백준] 10811번 바구니 뒤집기 Java 문제 풀이 (0) | 2023.03.14 |