알고리즘/SWEA

[Python] SWEA D2 1940번 - 가랏! RC카!

번잔중 2022. 6. 2. 17:55
 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

이 문제는 물리를 배운 분들이면 헷갈린다고 하는 문제더라구요... 물론 저는 물리 잘 몰라서 그냥 문제대로 풀었습니다 ^_^(이득맞나..)

문제에 나온대로 규칙을 적용해주면 됩니다.

- 0은 속도 유지, 1은 가속, 2는 감속

- 포인트는 속도를 거리에 계속 더해주는 것인데, 입력된 숫자에 따라 그 양이 달라질 뿐 계속 더해진다는 것입니다.

- 입력받은 2개의 수를 기준으로 1과 2인 경우를 나누어주어야 합니다.

1) 1인 경우: 속도인 s에 증가할 속도를 더해줍니다.

2) 2인 경우: 속도인 s가 감소할 속도보다 큰지 확인한 이후 빼줍니다.

- 위의 두 가지 작업이 끝난 이후 거리에 속도를 더해주면 됩니다.

- 0을 따로 신경쓰지 않은 이유는 이전 속도와 동일하게 더해주면 되기 때문입니다.

T = int(input())
for t in range(1, T + 1):
    s = 0
    m = 0
    for _ in range(int(input())):
        c = list(map(int, input().split()))
        if c[0] == 1:
            s += c[1]
        if c[0] == 2:
            if s > c[1]:
                s -= c[1]
        m += s
    print('#%d %d' % (t, m))

피드백은 언제나 환영합니다.