Programming/SW Expert Academy
20210116 // 삼성 SW Expert 아카데미 // 1940
껨코
2021. 1. 16. 15:24
삼성 SW Expert 아카데미 1940번 "가랏! RC카!" 문제입니다.
TC = int(input())
for tc in range(1, TC+1):
N = int(input())
dis, vel = 0, 0
for i in range(N):
lst = list(map(int, input().split()))
if lst[0] == 0:
dis += vel
else:
if lst[0] == 1:
vel += lst[1]
dis += vel
elif lst[0] == 2:
vel -= lst[1]
if vel < 0:
vel = 0
dis += vel
print("#%s"%tc, dis)
입력으로 주어진 N개의 커맨드를 모두 수행하였을 때 N초 동안 이동한 거리를 계산하는 프로그램을 작성하는 문제다.
N개의 커맨드를 N초동안 수행이기 때문에 1개의 커맨드는 1초동안 실행한다고 해석하면 되겠다.
0이 입력되었을 경우는 현상유지이므로 이동 거리에다가 속도*시간(=1초) = 속도 를 더해주면 되고
1이 입력되었을 경우는 속도를 입력된 숫자만큼 증가시키고 이동 거리에 더해주면 된다.
2가 입력되었을 경우는 속도를 입력된 숫자만큼 감소시키고 속도가 0보다 작은지 판별한 후에 이동 거리에 더해주면 된다.