728x90
728x90

문제

RC (Radio Control) 카의 이동거리를 계산하려고 한다.

입력으로 매 초마다 아래와 같은 command 가 정수로 주어진다.

0 : 현재 속도 유지.
1 : 가속
2 : 감속

위 command 중, 가속(1) 또는 감속(2) 의 경우 가속도의 값이 추가로 주어진다.

가속도의 단위는, m/s 이며, 모두 양의 정수로 주어진다.

입력으로 주어진 N 개의 command 를 모두 수행했을 때, N 초 동안 이동한 거리를 계산하는 프로그램을 작성하라.

RC 카의 초기 속도는 0 m/s 이다.

 

예제

아래 예제 입력에서 정답은 3 이 된다.

입력         시간     RC 카의 속도 RC     카의 이동거리
1 2          1 sec          2 m/s                    2 m
2 1          2 sec          1 m/s                    3 m

 

제약 사항

1. N은 2 이상 30 이하의 정수이다. (2 ≤ N ≤ 30)
2. 가속도의 값은 1 m/s 혹은 2 m/s 이다.
3. 현재 속도보다 감속할 속도가 더 클 경우, 속도는 0 m/s 가 된다.

 

입력

입력은 첫 줄에 총 테스트 케이스의 개수 T, 다음 줄부터 각 테스트 케이스가 주어진다.
테스트 케이스 첫 줄에는 Command 의 수 N이 주어지고, 둘째 줄부터, 매 줄마다 각각의 Command가 주어진다.

 

출력

테스트 케이스 t에 대한 결과는 “#t”을 찍고, 한 칸 띄고, 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

 

예제

[입력] [출력]
10
2
1 2
2 1
3
1 1
0
1 1
5
1 2
1 2
2 1
0
0
#1 3
#2 4
...

 

문제 해결 방법

  • 문제를 이해하면 쉽게 풀 수 있었던 문제였다.
  • 명령에 따라 속도(speed)를 다르게 설정해주고, 현재 속도보다 감속할 속도가 더 클 경우 속도(speed)를 0으로 설정해주어야 한다.
N = int(input())
distance = 0 # 이동 거리
speed = 0 # 이동 속도
for i in range(N):
input_string = input()
command = int(input_string.split()[0])
if command == 0: # 속도 유지
new_speed = 0
speed += new_speed
elif command == 1: # 가속
new_speed = int(input_string.split()[1])
speed += new_speed
elif command == 2: # 감속
new_speed = int(input_string.split()[1])
# 현재 속도보다 감속할 속도가 더 클 경우
if speed < new_speed:
new_speed = 0
speed -= new_speed
distance += speed

 

코드

T = int(input())
for test_case in range(1, 1 + T):
N = int(input())
distance = 0 # 이동 거리
speed = 0 # 이동 속도
for i in range(N):
input_string = input()
command = int(input_string.split()[0])
if command == 0: # 속도 유지
new_speed = 0
speed += new_speed
elif command == 1: # 가속
new_speed = int(input_string.split()[1])
speed += new_speed
elif command == 2: # 감속
new_speed = int(input_string.split()[1])
# 현재 속도보다 감속할 속도가 더 클 경우
if speed < new_speed:
new_speed = 0
speed -= new_speed
distance += speed
print(f"#{test_case} {distance}")

 

참고

  • 난이도: D2
728x90
728x90

문제예제제약 사항입력출력예제문제 해결 방법코드참고