백준 #10269 Train Passengers
문제 링크
문제 설명
열차가 역을 지나갈때마다 하차인원, 승차인원, 기다리는 인원이 주어졌을 때 모순이 없는지 판단하는 문제
코드
import sys
input = sys.stdin.readline
C, N = map(int, input().split())
cur = 0
remain = C
for i in range(N):
left, entered, stay = map(int, input().split())
# 열차는 비어있는 상태에서 출발 & 도착 및 마지막 역에서 기다리는 사람 있으면 안됨
if i == 0:
if left:
print("impossible")
exit()
# 일단 사람 내보내기
cur -= left
if cur < 0:
print("impossible")
exit()
# 내보낸 사람만큼 여유칸 만들기
remain += left
if remain > C:
print("impossible")
exit()
# 사람 들여오기
cur += entered
remain -= entered
if cur > C or remain < 0:
print("impossible")
exit()
# 여유있는데 기다리는지 체크
if stay and remain:
print("impossible")
exit()
if cur != 0 or stay or entered:
print("impossible")
else:
print("possible")
풀이
은근 까다로웠던 문제이다..! 열차 시작과 마지막엔 사람이 없어야한다는점 그리고 기다리는 사람도 없어야한다는 조건을 나중에서야 봤다 ㅠㅠ (문제좀 똑바로 제대로 읽자!)
드디어 풀리나 싶었는데 계속 또 틀렸다. 이유는 if stay and remain
이부분이였다.
나는 현재 수용가능 인원보다 기다리는 사람이 적거나 같을 때만 모순이라 생각했는데 그게 아니였다.
그냥 기다리는 사람이 존재하는데 수용가능하다? 그러면 모순이였던것..!!
브론즈 1문제여서 금방 풀릴 줄 알았는데 은근 시간 잡아먹었던 문제!!
댓글남기기