728x90
반응형
폴리오미노 (1343번)
시간 제한 : 2초 메모리 제한 : 128 MB
문제
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 500이다.
출력
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
예제 입력
XXXXXX
예제 출력
AAAABB
해답
board = input()
board = board.replace("XXXX", "AAAA")
board = board.replace("XX", "BB")
if 'X' in board:
print(-1)
else:
print(board)
풀이
파이썬에서의 replace() 함수는 왼쪽부터 해당하는 문자열을 찾아서 치환해주는 함수입니다.
먼저 입력값을 board 변수에 저장합니다. 그리고 replace() 함수를 2번 호출합니다.
왼쪽부터 모든 'XXXX'를 'AAAA'로 치환하고, 바뀐 문자열에서 남은 'XX'를 모두 'BB'로 치환합니다.
그러면 XXXX와 XX는 모두 사라졌을 것이고, X가 남아있다면 -1을, X가 없다면 바뀐 board를 출력하면 됩니다.
728x90
반응형
'알고리즘 (Python) > 백준' 카테고리의 다른 글
[백준] 구현 알고리즘 - 럭키 스트레이트 (18406번) #파이썬#python (0) | 2021.12.15 |
---|---|
[백준] 그리디 알고리즘 - 슬라임 합치기 (14241번) #파이썬#python (0) | 2020.10.08 |
[백준] 그리디 알고리즘 - 컵홀더 (2810번) #파이썬 #python (0) | 2020.09.19 |
[백준] 그리디 알고리즘 - 설탕 배달 (2839번) #파이썬 #python (0) | 2020.09.19 |
[백준] 그리디 알고리즘 - 피보나치 (9009번) #파이썬 #python (0) | 2020.09.19 |