hye-log

[SWEA]1940번 가랏! RC카!(JAVA) 본문

CodingTest/SWEA

[SWEA]1940번 가랏! RC카!(JAVA)

iihye_ 2023. 7. 30. 01:24

0. 문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PjMgaALgDFAUq 

 

SW Expert Academy

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

swexpertacademy.com

 

1. 문제 설명

1) 0 : 현재 속도 유지 / 1 : 가속 / 2 : 감속의 명령이 주어짐

2) 1 : 가속 / 2: 감속 명령이 주어지면 가속도 값이 추가로 주어짐

3) 1초마다 명령이 실행될 때 RC 카의 이동 거리 구하기

 

2. 입출력

// input
10
2
1 2
2 1
3
1 1
0
1 1
5
1 2
1 2
2 1
0
0
…

// output
#1 3
#2 4
...

 

3. 코드

import java.util.*;

public class swea1940 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt(); // 테스트 케이스의 개수
		
		for(int t = 1; t <= T; t++) {
			int speed = 0; // 초기 속도
			int ans = 0; // 이동한 거리
			
			int N = sc.nextInt(); // command의 수
			
			for(int n = 0; n < N; n++) {
				switch(sc.nextInt()) { // 현재 속도 유지 / 가속 / 감속
				case 1: // 가속이면 속도 증가
					speed += sc.nextInt();
					break;
				case 2: // 감속이면 속도 감소
					speed -= sc.nextInt();
					if(speed < 0) speed = 0;
					break;
				default: // 현재 속도 유지
					break;
				}
				ans += speed; // 거리 계산
			}
			
			System.out.printf("#%d %d\n", t, ans);
		}
	}
}

 

실행 결과

 

4. 회고

1) 명령 중에 현재 속도가 유지되면 가속도 값이 주어지지 않으므로 명령에 따라 입력값 받을지 결정

2) 1초마다 실행되므로 거리는 시간 * 속도에 의해 결국 속도 값을 더해줌

 

5. Github

https://github.com/iihye/Algorithm/blob/main/SWEA/swea1940.java

728x90
Comments