본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 1343 폴리오미노

by Alan_Kim 2023. 3. 14.
728x90
반응형

https://www.acmicpc.net/problem/1343

 

1343번: 폴리오미노

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

www.acmicpc.net

문제 해결

  • X가 연속 4번 나올 수 있으면 'AAAA'로 교체한다.
  • X가 연속 2번 나오고 '.'이 나오거나 끝나게 되면 'BB'로 교체한다.
  • X가 연속으로 홀수번 나오면 교체 불가능으로 -1 출력

 

CODE

import sys
input = sys.stdin.readline
board = list(input().rstrip())
ans = []
cnt = 0
for i in range(len(board)):
    if board[i] == 'X':
        cnt += 1
        if cnt == 4:
            for _ in range(4):
                ans.append('A')
                cnt = 0
    else:
        if cnt%2==0:
            for _ in range(cnt):
                ans.append('B')
                cnt = 0
            ans.append('.')
        else: break
if cnt%2==0:
    for _ in range(cnt):
        ans.append('B')
    print(''.join(ans))
else:
    print(-1)
728x90
반응형

댓글