[백준] 1343 : 폴리오미노 - Python

Chooooo·2022년 9월 19일
0

알고리즘/백준

목록 보기
1/182

그리디 알고리즘
풀이
data 앞에서부터 "."을 기준으로 나눠야했다. 먼저 출력가능한지 판단하고 4자리인지 2자리인지 판단 후 채워주면 끝.

import sys

data = list(input().split("."))   #.을 기준으로 나눔
a = "AAAA"
b = "BB"

res = ""
for i in range(len(data)):
    data_len = len(data[i])
    if data_len % 2 != 0:   #안됨
        res = -1
        break
    if data_len // 4 != 0:  #몫이 0 이면 안되잖아
        res += a * (data_len // 4)
        data_len -= (data_len // 4) * 4  #사용한 만큼 지워
    if data_len // 2 != 0:  #몫이 0이면 안되니깐
        res += b * (data_len // 2)
        data_len -= (data_len // 2) * 2
    if i != len(data) -1:  #마지막에는 뒤에 .붙이니깐
        res += "."   #AAAA, BB 추가한 이후에 . 추가해줘야하니깐.

print(res)

다른사람 코드

import sys

# sys.stdin = open("input.text", "rt")

board = input()

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

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

replace에 대해 환기되었다. 이럴 때 쓸 수 있다는거 기억해야겠다.

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글