try 1 times / 난이도 : ★☆☆☆☆
문제 확인
코드 깃허브 확인
정답 해설
num = 0 # 현재 기차에 있는 사람 수
result = [] # 정거장당 사람 수 리스트로 저장하기
for i in range(1,11):
down, up = list(map(int,input().split()))
num = num - down + up # 내리고 타기
result.append(num)
result.sort()
print(result[-1]) # 가장 많았던 사람수
공부한 내용
1. 오류 확인
문제 조건 중 '각 역에서 현재 기차에 있는 사람보다 더 많은 사람이 내리는 경우는 없다.'를 보고
아래와 같은 조건문을 썼는데, 정답이 아니라고 나왔다.
# if num < down :
# break # 내리는 사람이 더 많을 수 없다.
조건을 지정하라는 게 아니라 그런 경우를 애초에 input으로 넣지 않는다는 것 같다.
하지만, if문으로 넣어도 사실상 오류도 안나고 다 잘 나오는데, 틀리게 하는 이유를 잘 모르겠다...
문제를 잘 이해하자!
2. 다른 풀이 이해하기
최대값을 비교하면서 찾기
다른 풀이법에 대부분이 이런 형태로 했다.
따로 리스트를 안만들어도 바로바로 값들을 비교해서 최대값을 찾을 수 있어서 좋은 방법인 것 같다.
passenger = 0
max_passenger = 0
for _ in range(10):
out_train, in_train = map(int, input().split())
passenger += in_train - out_train
max_passenger = max(passenger, max_passenger)
print(max_passenger)
'Algorithm > 구현' 카테고리의 다른 글
[Python3] 백준 2309번 일곱 난쟁이 (0) | 2022.01.02 |
---|---|
[Python3] 백준 10870번 피보나치 수 5 (0) | 2021.12.31 |
[Python3] 백준 10818번 최소, 최대 (0) | 2021.12.28 |
[Python3] 백준 2501번 약수 구하기 (0) | 2021.12.28 |
[Python3] 백준 3460번 이진수 (0) | 2021.12.28 |
댓글