https://www.acmicpc.net/problem/1343
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
replace 함수를 사용해서 XXXX를 AAAA로, XX를 BB로 바꿔준다.
board = input()
board = board.replace("XXXX", "AAAA") # "XXXX"를 AAAA로 바꿈
board = board.replace("XX", "BB") # "XX"를 BB로 바꿈
if 'X' in board: # board에 'X'가 있으면 -1 출력
print(-1)
else: # 'X'가 없으면 board 출력
print(board)
board에 보드판 값 입력
replace 함수를 사용해서 왼쪽부터 "XXXX"를 "AAAA"로 바꾼 다음, 바뀐 문자열 중에서 다시 "XX"를 "BB"로 바꾼다.
"XXXX"나 "XX"만 폴리오미노로 바꿔주는 것이기 때문에 "."은 변하지 않는다.
board의 남은 문자열 중에 "X"가 있으면 -1을 출력하고, 없으면 바뀐 board를 출력한다.
replace 함수를 쓰니까 엄청 쉽게 풀 수 있었다.