#유형 : 시뮬레이션
# 난이도 : 실버 4
# 간단한 시뮬레이션 문제이다. 리스트를 쓰던, 배열을 쓰던 편한 방식으로 사용하여 해결하면 된다. 이 때 조건은
CBA DEF 를 예를 들어 ABC를 1집단, DEF를 2집단으로 두고, 2집단이 앞으로 오는 경우에는 무시하고 현재 인덱스의 집단이 1집단이면서 현재 인덱스의 집단과 다음인덱스의 집단이 다를 경우에 스왑을 해주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
package bj;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class p3048 {
static String str1, str2;
static ArrayList<Po> arrList = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N1,N2;
StringTokenizer st = new StringTokenizer(br.readLine());
N1 = Integer.parseInt(st.nextToken());
N2 = Integer.parseInt(st.nextToken());
str1 = br.readLine();
for(int i=str1.length()-1; i>=0; i--)
arrList.add(new Po(str1.charAt(i), 1));
str2 = br.readLine();
for(int i=0; i<str2.length(); i++)
arrList.add(new Po(str2.charAt(i), 2));
int time = Integer.parseInt(br.readLine());
while(time-- > 0) {
for(int i=0; i<arrList.size()-1; i++) {
Po current = arrList.get(i);
Po next = arrList.get(i+1);
if(current.num != 2 && current.num != next.num) {
arrList.set(i, next);
arrList.set(i+1, current);
i++;
}
}
}
for(int i=0; i<arrList.size(); i++)
System.out.print(arrList.get(i).ch);
}
public static class Po{
char ch;
int num;
public Po(char ch, int n) {
this.ch=ch;
this.num=n;
}
}
}
|
cs |
'백준' 카테고리의 다른 글
#백준_1135 뉴스 전하기 - Java (0) | 2020.02.26 |
---|---|
#백준_2980 도로와 신호등 - Java 자바 (0) | 2020.02.26 |
#백준_1748 수 이어 쓰기 1 - Java 자바 (0) | 2020.02.22 |
#백준_1952 달팽이2 - Java 자바 (0) | 2020.02.22 |
#백준_2842 집배원 한상덕 - Java 자바 (0) | 2020.02.21 |