백준 3048 개미

wook2·2022년 6월 21일
0

알고리즘

목록 보기
106/117

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();

    }
}
profile
꾸준히 공부하자

0개의 댓글