백준 2628 종이자르기 (파이썬)
내 풀이
r, c = map(int, input().split())
#자르는 위치 저장
row = [0, r] # [0, 10]
column = [0, c] # [0, 8]
for _ in range(int(input())): # 자르는 횟수
r_or_c, linenumber = map(int, input().split())
if r_or_c == 1: # 세로가 1 가로가 0-> 세로는 r에 가로는 c
row.append(linenumber)
else :
column.append(linenumber)
row.sort() # [0, 4, 10]
column.sort() # [0, 2, 3, 8]
# 빼서 최대 길이 구하기
subtracted_r = [] #[4, 6]
subtracted_c = [] #[2, 1, 5]
for i in range(len(row)-1): # 0 1
subtracted_r.append(row[i + 1] - row[i]) # row[1]-row[0] row[2]-row[1]
for i in range(len(column) -1): # 0 1 2
subtracted_c.append(column[i+1]- column[i]) #col[1]-col[0] col[2]-col[1] col[3]-col[2]
print(max(subtracted_r) * max(subtracted_c))
포인트🎯
👆
row = [0, r]
column = [0, c]
로 받는 것
(x,y축처럼 생각해주기)
✌
가로로 자르면 column값을 건드리는 것
세로로 자르면 row값을 건드리는 것
Author And Source
이 문제에 관하여(백준 2628 종이자르기 (파이썬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shon4bw/백준-2628-종이자르기-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)