문제 풀이/백준

[백준] 1343번. 폴리오미노 (JAVA)

27200 2024. 1. 15. 19:20

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


문제


풀이

import java.util.*;

public class Main {

    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        sc.close();

        String res = poliomino(s);

        System.out.println(res);
    }

    private static String poliomino(String s) {
        String ans = "";
        String A = "AAAA", B = "BB";

        s = s.replaceAll("XXXX", A);
        ans = s.replaceAll("XX", B);

        if(ans.contains("X")) {
            ans = "-1";
        }

        return ans;
    }
}

 

 사용자 입력을 받은 뒤에 사전식 배열 + 네개의 글자라는 큰 정보를 갖는 "AAAA"를 먼저 대치시켜준다. 이 후 "BB"를 대치시키고, 과정을 마무리한다. 최종적으로 모든 대치가 완료되었을 때 문자열에 X가 남아있다면 대치 불가능으로 판단하고 -1을 반환하게 한다.