본문 바로가기

숨막히는 알고말고/문제 풀이

[SWEA] 가랏! RC카!

👀 문제 설명

문제

로그인해야 문제를 볼 수 있다.

 

✍🏻풀이

속도를 저장하는 변수를 사용한다.

1초마다 속도 상태를 입력받으므로, 속도 상태를 입력받아 0일 경우, 가만히 두고, 1일 경우 기존의 속도에 가속도값을 더하고, 2일 경우 기존 속도에 가속도 값을 빼주면 된다.

그리고 매 초 이동한 거리를 ans에 더해준다. (거 = 속 x 시)

 

코드

package swea;

// 가랏! RC카! (https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PjMgaALgDFAUq&categoryId=AV5PjMgaALgDFAUq&categoryType=CODE&problemTitle=%EA%B0%80%EB%9E%8F&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 )

import java.util.*;
import java.io.*;

public class SWEA_1940 {
	
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;
		int T;
		
		T = Integer.parseInt(br.readLine());
		
		for (int tc = 1; tc <= T; tc++) {
			int N = Integer.parseInt(br.readLine());
			int v = 0;
			int ans = 0;
			
			for  (int i = 0; i < N; i++) {
				st = new StringTokenizer(br.readLine());
				
				switch (Integer.parseInt(st.nextToken())) {
				case 0:
					break;
				case 1:
					v += Integer.parseInt(st.nextToken());
					break;
				case 2:
					v -= Integer.parseInt(st.nextToken());
					break;
				}
				
				if (v < 0) v = 0;
				ans += v;
			}
			
			bw.write("#" + tc + " " + ans);
			bw.newLine();
		}
		
		bw.flush();
		bw.close();
	}
}