728x90
반응형
문제
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.
출력
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
예제 입력1
XXXXXX
예제 출력1
AAAABB
예제 입력2
XXXX....XXX.....XX
예제 출력2
-1
# Code
s = input()
s = s.replace('XXXX', 'AAAA')
s = s.replace('XX', 'BB')
if 'X' in s:
print(-1)
else:
print(s)
# Comment
처음에 생각한건 '.' 으로 구분해서 입력 받으면서 홀수이면 -1 출력, 짝수이면 경우 따져가면서 'AAAA'나 'BB'로 대체 하는 식으로 짜려고 했는데 어떻게 해야 효율적인지 모르겠어서 고민하다가 결국 다른 코드를 참고했다.
근데 replace 라는걸 쓰면 정말 쉽게 풀 수 있다는 것을 깨달았다... ㅎㅎ
문자열을 s에 입력받고 'XXXX' 가 나오면 'AAAA', 'XX' 가 나오면 'BB' 로 바꿔준다. 이때, s에서 남아 있는 'X' 가 있다면 이건 'X'가 홀수개 였다는 뜻이므로(즉, 완전히 다 문자로 대체할 수 없으므로) -1을 출력한다.
728x90
반응형
'백준 > 그리디' 카테고리의 다른 글
[백준] #13305 주유소 (python) (3) | 2022.02.18 |
---|---|
[백준] #2217 로프 (python) (0) | 2022.02.18 |
[백준] #1439 뒤집기 (python) (0) | 2022.02.16 |
[백준] #14916 거스름돈 (python) (0) | 2022.02.15 |
[백준] #21313 문어 (python) (0) | 2022.02.15 |
댓글