[백준] 1343번 : 폴로노미오 (Python)

2023. 3. 11. 22:43알고리즘/그리디

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

 

1343번: 폴리오미노

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

www.acmicpc.net

문제 유형 

  • 구현
  • 그리디 알고리즘

 


내 코드 

board = input()
board+='.'
result= ''
cnt=0
temp=0 # 홀수 존재 유무를 판별하기 위한 변수 
for i in board:
    if i == 'X':
        cnt += 1
        if cnt == 4: 
            result+= 'AAAA'
            cnt =0    
    else : 
        if cnt == 2:
            result +='BB'
        elif cnt % 2 == 1: # 홀수면 만들 수 없으므로 -1 출력
            print('-1')
            temp=1
            break
        result+='.'
        cnt =0
if temp!=1: # 홀수가 존재 하지 않으면 결과값 출력 
    print(result[:-1])

 


다른 코드

board = input()

board = board.replace("XXXX", "AAAA")
board = board.replace("XX", "BB")

if 'X' in board:
    print(-1)
    
else:
    print(board)

 

배운 것

replace("예전값", "바꿀값")