백준 1343: 폴리오미노
2022. 4. 23. 19:35ㆍ알고리즘/그리디 알고리즘
문제
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.
출력
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
시간 제한메모리 제한제출정답맞힌 사람정답 비율
예제 입력 1
XXXXXX
예제 출력 1
AAAABB
예제 입력 2
XX.XX
예제 출력 2
BB.BB
예제 입력 3
XXXX....XXX.....XX
예제 출력 3
-1
예제 입력 4
X
예제 출력 4
-1
예제 입력 5
XX.XXXXXXXXXX..XXXXXXXX...XXXXXX
예제 출력 5
BB.AAAAAAAABB..AAAAAAAA...AAAABB
내 제출
public class No1343 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
String s1 = s.replaceAll("XXXX", "AAAA").replaceAll("XX", "BB");
if(s1.contains("X"))
System.out.println(-1);
else
System.out.println(s1);
}
}
사전순으로 정렬해야 하므로, "XXXX"를 "AAAA"로 먼저 치환하고, 나머지 "XX"를 "BB"로 치환하였다.
'알고리즘 > 그리디 알고리즘' 카테고리의 다른 글
백준 1758: 알바생 강호 (0) | 2022.04.26 |
---|---|
백준 12904: A와 B (0) | 2022.04.25 |
백준 2170: 선 긋기 (0) | 2022.04.14 |
백준 19941: 햄버거 분배 (0) | 2022.04.08 |
백준 2847: 게임을 만든 동준이 (0) | 2022.04.06 |