문제 주소: https://www.acmicpc.net/problem/1343
난이도: silver 5
XXXXXX -> AAAABB
XX.XX -> BB.BB
XXXX....XXX.....XX -> -1
X -> -1
XX.XXXXXXXXXX..XXXXXXXX...XXXXXX -> BB.AAAAAAAABB..AAAAAAAA...AAAABB
크게 두가지 풀이가 존재하는 것 같습니다.
board = board.replace("XXXX", "AAAA")
board = board.replace("XX", "BB")
board = input()
board = board.replace("XXXX", "AAAA")
board = board.replace("XX", "BB")
if board.count('X') >= 1:
board = -1
print(board)
board = input()
ans = ''
counter = 0
def recur_get_first(x):
global counter
temp = x[0]
if x[0] == '.' and counter == 0:
return temp
if x[0] == '.' and counter != 0:
return ''
if len(x) == 1:
return temp
else:
counter += 1
return temp + recur_get_first(x[1:])
while board:
piece = ''
counter = 0
piece = recur_get_first(board)
board = board[len(piece):]
if piece == '.':
ans += piece
else:
if len(piece) % 2 == 1:
print(-1)
exit(0)
else:
_rest = len(piece) % 4
_quotient = _rest // 2
ans += ('AAAA' * (len(piece) // 4) + 'BB' * _quotient)
print(ans)