[백준][1343번: 폴리오미노]

호준·2022년 3월 28일
0

Algorithm

목록 보기
51/111
post-thumbnail

문제

문제링크

민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB

이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.

폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.

출력

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

문제풀이

  1. 폴리오미노 덮을 때 2개중 XXXX에서 AAAA를 먼저 바꾼다.(XXXX-> BBBB가 아니라 XXXX->AAAA로)
  2. XX -> BB로 바꾼다.
  3. X가 포함되어있으면 -1 출력

코드

package BaekJoon.P1343;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();

        str = str.replace("XXXX","AAAA");
        str = str.replace("XX","BB");

        if(str.contains("X")){
            System.out.println(-1);
        }else{
            System.out.println(str);
        }
    }
}

알고 넘어가기

repalace(기존문자,수정문자)를 하게되면 해당하는 기존문자를 수정문자로 바꿔준다.

profile
도전하자

0개의 댓글