반응형
SMALL
반응형
https://www.acmicpc.net/problem/1343
문제
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB
이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.
폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.
출력
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
예제 입력 1 복사
XXXXXX
예제 출력 1 복사
AAAABB
예제 입력 2 복사
XX.XX
예제 출력 2 복사
BB.BB
예제 입력 3 복사
XXXX....XXX.....XX
예제 출력 3 복사
-1
예제 입력 4 복사
X
예제 출력 4 복사
-1
예제 입력 5 복사
XX.XXXXXXXXXX..XXXXXXXX...XXXXXX
예제 출력 5 복사
BB.AAAAAAAABB..AAAAAAAA...AAAABB
풀이
'.'을 기준으로 문자열 나눠서 리스트 저장
XXXX -> AAAA, XX -> BB (문자열 치환(replace())함수 사용)
result에 X 하나라도 있으면 -1 출력
코드
n = input().split('.') # 입력받은 문자열을 '.' 기준으로 나누어 리스트로 저장
a = [x.replace('XXXX', 'AAAA').replace('XX', 'BB') for x in n] # 리스트의 각 요소에 replace 적용
result = '.'.join(a)
if 'X' in result :
print(-1)
else:
print(result)
--
replace().. 기억..replace ,,~
반응형
LIST
'Algorithm > 백준' 카테고리의 다른 글
[백준2720/Python] 세탁소 사장 동혁 (0) | 2025.01.27 |
---|---|
[백준11047/Python] 동전 0 (0) | 2025.01.27 |
[백준11508/Python] 2+1 세일 (0) | 2025.01.27 |
[백준14916/Python] 거스름돈 (0) | 2025.01.27 |
[백준20300/Python] 서강근육맨 (2) | 2025.01.27 |
댓글