Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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 31
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_1343] 폴리오미노 본문

Study/Problem Solving

[BOJ_1343] 폴리오미노

monitor 2024. 3. 27. 22:39

설명


그리디하게 풀면 되는 문제입니다. 결국 X가 4의 배수만큼 이거나 4의 나눗셈 값이 나오는 만큼 AAAA를 붙이고 짝수개의 나머지 X가 나오면 BB 또는 4의 배수이면 AAAA로 채워버리면 됩니다. 따라서, 문제의 주어진 X의 값을 가져와서 읽고 이를 선택해서 사용하면 됩니다. 만일, X가 3개라면 홀수 개라서 AAAA,BB로는 채울 수 없죠.

코드


package BOJ.greedy;

import java.io.*;
public class BOJ_1343 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String board = br.readLine();
        StringBuilder sb = new StringBuilder();

        int count = 0;
        for (char c : board.toCharArray()) {
            if (c == 'X') {
                count++;
            } else {
                if (count % 2 != 0) {
                    System.out.println(-1);
                    return;
                }
                sb.append("AAAA".repeat(count / 4));
                sb.append("BB".repeat((count % 4) / 2));
                sb.append('.');
                count = 0;
            }
        }
        if (count % 2 != 0) {
            System.out.println(-1);
            return;
        }
        sb.append("AAAA".repeat(count / 4));
        sb.append("BB".repeat((count % 4) / 2));
        System.out.println(sb.toString());
    }
}

 

 

1343번: 폴리오미노

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

www.acmicpc.net

 

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_13305] 주유소  (0) 2024.04.01
[BOJ_1758] 알바생 강호  (1) 2024.03.29
[BOJ_2293] 동전1  (0) 2024.03.24
[BOJ_1106] 호텔  (0) 2024.03.23
[BOJ_22869] 징검다리 건너기 (small)  (0) 2024.03.17