DHistory

[Baekjoon] Greedy - 1343 폴리오미노 본문

Computer Science/Algorithm

[Baekjoon] Greedy - 1343 폴리오미노

ddu0422 2023. 8. 11. 15:25

문제

 

1343번: 폴리오미노

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

www.acmicpc.net

 

풀이

"""
AAAA와 BB 사용 가능
.와 X로 이루어진 보드판
X를 모두 AAAA / BB로 덮으려고 함 (단, .은 덮으면 안됨)

사전순으로 가장 앞서는 답 출력
주의) 덮을 수 없으면 -1 출력
"""


board = input()


def solution(board):
    board = board.split('.')
    result = []
    
    for element in board:
        count_x = element.count('X')
        if count_x % 2 != 0:
            return -1
        else:
            a = count_x // 4
            b = count_x % 4
            result.append('AAAA' * a + 'B' * b)

    return '.'.join(result)


print(solution(board))

 

채점 결과