티스토리 뷰

728x90

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

 

1343번: 폴리오미노

첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.

www.acmicpc.net

 

구현 방식을 요약하면

큰 문자열을 먼저 교체한 뒤, 나머지 문자열을 교체합니다.

이 때, 나머지 값을 비교하여 조건에 부합하는지 확인하는 작업을 하면 됩니다.

그리디 알고리즘을 입문하기에 좋은 문제라고 생각합니다.

 

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
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 = "";
 
        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;
    }
}
cs

 

'코딩 > 자바 백준' 카테고리의 다른 글

백준 2485 가로수 (JAVA)  (0) 2021.08.16
백준 2960 에라토스테네스의 체(JAVA)  (0) 2021.08.16
백준 11576 Base Conversion (JAVA)  (0) 2021.08.15
백준 1182 부분수열의 합 (JAVA)  (0) 2021.08.15
백준 9625 BABBA (JAVA)  (0) 2021.08.12
댓글