문제
RC (Radio Control) 카의 이동거리를 계산하려고 한다.
입력으로 매 초마다 아래와 같은 command 가 정수로 주어진다.
0 : 현재 속도 유지.
1 : 가속
2 : 감속
위 command 중, 가속(1) 또는 감속(2) 의 경우 가속도의 값이 추가로 주어진다.
가속도의 단위는, m/s2 이며, 모두 양의 정수로 주어진다.
입력으로 주어진 N 개의 command 를 모두 수행했을 때, N 초 동안 이동한 거리를 계산하는 프로그램을 작성하라.
RC 카의 초기 속도는 0 m/s 이다.
제약사항
1. N은 2이상 30이하의 정수이다. (2 ≤ N ≤ 30)
2. 가속도의 값은 1 m/s2 혹은 2 m/s2 이다.
3. 현재 속도보다 감속할 속도가 더 클 경우, 속도는 0 m/s 가 된다.
입력
입력은 첫 줄에 총 테스트 케이스의 개수 T, 다음 줄부터 각 테스트 케이스가 주어진다.
10 2 1 2 2 1 3 1 1 0 1 1 5 1 2 1 2 2 1 0 0 … |
출력
테스트 케이스 t에 대한 결과는 “#t”을 찍고, 한 칸 띄고, 정답을 출력한다.
#1 3 #2 4 #3 15 #4 27 #5 38 #6 44 #7 240 #8 91 #9 48 #10 111 |
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import java.util.Scanner;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for(int i=0; i<t; i++){
int n = sc.nextInt();
int speed = 0; //RC카의 속도
int result = 0; //N초 동안 이동한 거리를 계산
for(int j=0; j<n; j++){
int mode = sc.nextInt(); //모드
if(mode==1){
speed += sc.nextInt();
}
else if(mode==2){
speed = Math.max(speed-sc.nextInt(),0);
}
result += speed;
}
System.out.printf("#%d %d\n",i+1,result);
}
}
}
|
cs |
'SW expert Academy > D2' 카테고리의 다른 글
[SW Expert Academy] 1928번 Base64 Decoder 변형 문제 (0) | 2023.05.17 |
---|---|
[SW Expert Academy] 1928번 Base64 Decoder (0) | 2023.05.12 |
[SW Expert Academy] 1946번 간단한 압축 풀기 (0) | 2023.05.12 |
[SW Expert Academy] 1948번 날짜 계산기 (0) | 2023.05.12 |
[SW Expert Academy] 1954번 달팽이 숫자 (0) | 2023.05.12 |