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보다 작은지 판별한 후에 이동 거리에 더해주면 된다.