https://www.acmicpc.net/problem/3048
앞으로 파이썬 말고 자바로 알고리즘 풀이를 해볼 생각이다.
파이썬 쓰다가 자바 쓰려하니 좀 답답한 느낌이 있지만 앞으로 스프링 공부하면서 자바를 계속 쓸것이라 판단해 자바를 쓰기로 했다.
import java.io.*;
import java.util.*;
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));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
String s1 = br.readLine();
StringBuffer sb = new StringBuffer(s1);
char[] reversed_s1 = sb.reverse().toString().toCharArray();
char[] s2 = br.readLine().toCharArray();
ArrayList<Character> s3 = new ArrayList<>();
int[] dir = new int[n+m];
for (int i = 0; i < n; i++) {
s3.add(reversed_s1[i]);
dir[i] = 1;
}
for (int i = n; i < n+m; i++) {
s3.add(s2[i-n]);
dir[i] = -1;
}
int t = Integer.parseInt(br.readLine());
while (t>0){
t--;
for (int i = 0; i < n+m-1; i++) {
if(dir[i]*dir[i+1] == -1 & dir[i] > dir[i+1]){
Collections.swap(s3,i,i+1);
dir[i] *= -1;
dir[i+1] *= -1;
i += 1;
}
}
}
StringBuilder stringBuilder = new StringBuilder();
for (Character c :
s3) {
stringBuilder.append(c);
}
bw.write(stringBuilder.toString());
bw.close();
}
}