[백준] 1343번 폴리오미노

🔔 문제

민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB 이제 '.'과 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때 '.'는 폴리오미노로 덮으면 안 된다. 폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.

입력

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

출력

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

🎯 풀이방법

먼저 보드판을 입력으로 받는다. 폴리오미노는 총 'AAAA'와 'BB' 두개로 'X'가 4의 배수개로 존재한다면 AAAA로 덮어야 사전순으로 가장 앞서는 답을 찾을 수 있다. 그래서 'X'가 4개 존재한다면 'AAAA'로 덮었고, 'X'가 2개 존재한다면 'BB'로 덮었다. 'X'가 홀수개로 존재한다면 폴리오미노로 덮을 수 없으므로 -1를 출력한다.

💻 python code

board = input()

board = board.replace('XXXX','AAAA')
board = board.replace('XX','BB')

print(board if 'X' not in board else -1)

좋은 웹페이지 즐겨찾기