[문제 링크] 👉 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)
'BOJ 코딩테스트 > Bronze' 카테고리의 다른 글
[BOJ] 3460. 이진수 (Python/Bronze 3) (0) | 2024.11.15 |
---|---|
[BOJ] 2501. 약수 구하기 (Python/Bronze 3) (0) | 2024.11.15 |
BOJ 10798번 : 세로읽기 (Python/수학/Bronze 1) (1) | 2024.10.15 |
BOJ 1934번 : 최소공배수 (Python/수학/Bronze 1) (0) | 2024.10.15 |
BOJ 2775번 : 부녀회장이 될테야 (Python/구현/Bronze 1) (0) | 2024.10.15 |