하루일문

[백준] 13305번 주유소(파이썬) 본문

algorithm/baekjoon

[백준] 13305번 주유소(파이썬)

support_u 2023. 4. 1. 14:17

문제

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

 

13305번: 주유소

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1

www.acmicpc.net

독특하게 점수가 나오는 문제로 시간초과가 나와도 알려주진 않으나 58점이라면 시간 초과이다.

코드

n = int(input())

load = list(map(int, input().split()))
city = list(map(int, input().split()))

dic = {}
m = int(10e9)

for i in range(len(load)):
    if not dic:
        m = city[i]
        dic[m] = load[i]
    else:
        if m > city[i]:
            m = city[i]
            dic[m] = load[i]
        else:
            dic[m] += load[i]

total = 0
for key, value in dic.items():
    total += key * value

print(total)

해설

시간 초과가 나와서 딕셔너리로 다시 풀었다. 지금 저장된 키 값보다 더 작은 값이 나온다면 자리를 대체하게해주었다.