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을 반환하게 한다.
'문제 풀이 > 백준' 카테고리의 다른 글
| [백준] 2828번. 사과 담기 게임 (JAVA) (0) | 2024.01.15 |
|---|---|
| [백준] 14916번. 거스름돈 (JAVA) (0) | 2024.01.15 |
| [백준] 1806번. 부분합 (JAVA) (0) | 2023.01.12 |
| [백준] 1920번. 수 찾기 (JAVA) (0) | 2023.01.12 |
| [백준] 1654번. 랜선 자르기 (JAVA) (1) | 2023.01.11 |