개발자 톡
python 정답이긴한데... 너무 복잡하게 한거같네요
- 등록일
- 2025-01-05 20:30:30
- 조회수
- 50
- 작성자
- jcm5900
import sys
input=sys.stdin.readline
regulation_n,measure_n=map(int,input().split(" "))
regulation=[]
measure=[]
for i in range(regulation_n):
regulation.append(list(map(int,input().split(" "))))
for i in range(measure_n):
measure.append(list(map(int,input().split(" "))))
new_regul=[] #40 30 30, 이렇게 되있는걸 40 70 100이렇게
new_measure=[] #40 30 30, 이렇게 되있는걸 40 70 100이렇게
arr=[] #가능한 모든 구간을 다 범위의 height를 오름차순으로 나열하게금
tmp=0
for a, b in regulation:#40 30 30, 이렇게 되있는걸 40 70 100이렇게
new_regul.append([tmp+a,b])
arr.append(tmp+a)
tmp+=a
tmp=0
for a, b in measure:#40 30 30, 이렇게 되있는걸 40 70 100이렇게
new_measure.append([tmp+a,b])
if tmp+a!=100:
arr.append(tmp+a)
tmp+=a
arr.sort()# 오름차순 정렬
dict=[]
idx_r=0 #규정 구간 인덱스
idx_m=0 #측정 구간 인덱스
for item in arr:
if item==new_regul[idx_m][0] and idx_m<measure_n and item==new_measure[idx_r][0] and idx_r<regulation_n: #둘다 구간이 같은경우
dict.append(max(0,new_measure[idx_r][1]-new_regul[idx_m][1]))
#인덱스를 둘다올림
idx_r+=1
idx_m+=1
else:
if item==new_measure[idx_r][0] and idx_r<measure_n:#현재 측정된 구간인경우
dict.append(max(0,new_measure[idx_r][1]-new_regul[idx_m][1]))
#측정구간 인덱스 올리기
idx_r+=1
elif item==new_regul[idx_m][0] and idx_m<regulation_n:#규정된 구간인 경우
dict.append(max(0,new_measure[idx_r][1]-new_regul[idx_m][1]))
#규정구간 인덱스 올리기
idx_m+=1
print(max(dict))