지나가던 개발자
[Python] NYPC 2023 Round 1 <게임 안에서 책을 읽을 수 있다구요?> 문제 풀이 본문
n, m = map(int, input().split())
book = []
for i in range(n):
book.append(input())
for i in range(len(book)):
if book[i][0] == "<":
continue
book[i] = book[i].split()
toPrint = []
for x in book:
if x[0] == "<":
toPrint.append(x)
continue
a = 0
to_print = ""
for j in x:
a += len(j)
if a > m:
a = 0
toPrint.append(to_print)
to_print = j
continue
a += 1
to_print += j
if to_print != "":
toPrint.append(to_print)
status = "LEFT"
#print(book)
for x in book:
if x == "<CENTER>":
status = "CENTER"
continue
elif x == "<RIGHT>":
status = "RIGHT"
continue
elif x == "</CENTER>" or x == "</RIGHT>":
status = "LEFT"
else:
toPrint = ""
a = 0
i = 0
for y in x:
a += len(y)
if a >= m and toPrint != "":
if status == "LEFT":
#print(1)
print(toPrint+"-"*(m-len(toPrint)))
elif status == "RIGHT":
#print(2)
print("-"*(m-len(toPrint))+toPrint)
else:
#print(3)
if (m-len(toPrint))%2 == 0:
print("-"*((m-len(toPrint))//2) + toPrint + "-"*((m-len(toPrint))//2))
else:
print("-"*((m-len(toPrint))//2) + toPrint + "-"*((m-len(toPrint))//2+1))
a = len(y)
i = 1
toPrint = y
else:
if i>=1:
a += 1
toPrint += "-"
toPrint += y
continue
i += 1
toPrint += y
if toPrint != "":
if status == "LEFT":
#print(4)
print(toPrint+"-"*(m-len(toPrint)))
elif status == "RIGHT":
#print(5)
print("-"*(m-len(toPrint))+toPrint)
else:
#print(6)
if (m-len(toPrint))%2 == 0:
print("-"*((m-len(toPrint))//2) + toPrint + "-"*((m-len(toPrint))//2))
else:
print("-"*((m-len(toPrint))//2) + toPrint + "-"*((m-len(toPrint))//2+1))
'PS > Python' 카테고리의 다른 글
[Python] 백준 5341번(Pyramids) 문제 풀이 (1) | 2024.09.06 |
---|---|
[Python] 백준 1302번(베스트셀러) 문제 풀이 (0) | 2023.08.17 |
[Python] NYPC 2023 Round 1 <메이플스토리 새로운 직업 고르기> 풀이 (0) | 2023.08.16 |
[Python] 백준 17254번(키보드 이벤트) 문제 풀이 (0) | 2023.08.14 |
[Python] 코드업 5078번(삼각형의 형태) 문제 풀이 (0) | 2023.08.02 |
Comments