BOJ 코딩테스트/Bronze
[BOJ] 2460. 지능형 기차 2 (Python/Bronze 3)
dev스카이
2024. 11. 15. 16:39
[문제 링크] 👉 https://www.acmicpc.net/problem/2460
풀이 방법
내릴 때는 빼고, 탈 때는 더한다.
그리고 연산 결과를 max() 함수를 통해 최댓값을 갱신한다.
최댓값 갱신
result = max(result, max_on)
Solution
get_off, get_on = [], []
for _ in range(10):
off, on = map(int, input().split())
get_off.append(off)
get_on.append(on)
result, max_on = 0, 0
for off, on in zip(get_off, get_on):
max_on -= off
max_on += on
result = max(result, max_on)
print(result)
개선할 점
get_off와 get_on 리스트에 모든 값을 저장할 필요 없이, 바로 계산하면서 최대 인원을 찾는 방식으로 개선할 수 있다.
- get_off와 get_on 리스트를 제거하고, 입력을 받는 동시에 max_on을 업데이트하여 최대 인원 수를 result에 저장한다.
- 이렇게 하면 코드가 더 간결해지고 메모리 사용량이 줄어든다.
개선된 코드
result, max_on = 0, 0
for _ in range(10):
off, on = map(int, input().split())
max_on -= off
max_on += on
result = max(result, max_on)
print(result)