문제
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 500이다.
출력
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
예제 입력과 출력
알고리즘 분류
그리디 알고리즘
정답
n=input()
a=0
i=0
while True:
if i >= len(n):
break
if n[i:i+4] == 'XXXX':
i=i+4
n=n.replace('X','A',4)
elif n[i:i+2] == 'XX':
i=i+2
n=n.replace('X','B',2)
elif n[i] == '.':
i=i+1
else:
n=-1
break
print(n)
백준 알고리즘 1343번 : www.acmicpc.net/problem/1343
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
백준알고리즘 - 9095번 1, 2, 3 더하기 - 파이썬(Python) (0) | 2020.05.31 |
---|---|
백준알고리즘 - 2947번 나무 조각 - 파이썬(Python) (0) | 2020.05.31 |
백준알고리즘 - 6593번 상범 빌딩 - 파이썬(Python) (0) | 2020.05.30 |
백준알고리즘 - 7569번 토마토 - 파이썬(Python) (1) | 2020.05.30 |
백준알고리즘 - 2146번 다리 만들기 - 파이썬(Python) (0) | 2020.05.29 |