츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 1940번 가랏! RC카! 자바(Java)
1) 난이도 : D2
2) 문제번호 : 1940번
3) 문제 출처
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PjMgaALgDFAUq
2. 문제
RC (Radio Control) 카의 이동거리를 계산하려고 한다.
입력으로 매 초마다 아래와 같은 command 가 정수로 주어진다.
0 : 현재 속도 유지.
1 : 가속
2 : 감속
위 command 중, 가속(1) 또는 감속(2) 의 경우 가속도의 값이 추가로 주어진다.
가속도의 단위는, m/s2 이며, 모두 양의 정수로 주어진다.
입력으로 주어진 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
3. 제약사항
- N은 2이상 30이하의 정수이다. (2 ≤ N ≤ 30)
- 가속도의 값은 1 m/s2 혹은 2 m/s2 이다.
- 현재 속도보다 감속할 속도가 더 클 경우, 속도는 0 m/s 가 된다.
4. 입력
입력은 첫 줄에 총 테스트 케이스의 개수 T, 다음 줄부터 각 테스트 케이스가 주어진다.
테스트 케이스 첫 줄에는 Command 의 수 N이 주어지고, 둘째 줄부터, 매 줄마다 각각의 Command가 주어진다.
5. 출력
테스트 케이스 t에 대한 결과는 “#t”을 찍고, 한 칸 띄고, 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
6. 풀이
- 가속이면 스피드에 더하고, 감속이면 스피드에서 뺀다.
- 그리고 거리에 스피드를 더하면 된다.
7. 소스 코드
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int tc=1;tc<=T;tc++) {
int N = sc.nextInt();
int speed = 0;
int dis = 0;
for(int i=0;i<N;i++) {
int X = sc.nextInt();
if(X==1) {
speed += sc.nextInt();
}
else if(X==2) {
speed -= sc.nextInt();
}
else if(X==0) {
}
if(speed<0) speed = 0;
dis += speed;
}
System.out.printf("#%d %d\n", tc, dis);
}
}
}
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 1247번 최적 경로 자바(Java) (0) | 2021.02.10 |
---|---|
[SW expert Academy] SWEA 1961번 숫자 배열 회전 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1976번 시각 덧셈 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1966번 숫자를 정렬하자 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 9229번 한빈이와 Spot Mart 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1228번 암호문1 자바(Java) (0) | 2021.02.08 |
[SW expert Academy] SWEA 1979번 어디에 단어가 들어갈 수 있을까 자바(Java) (0) | 2021.02.07 |
[SW expert Academy] SWEA 1223번 계산기2 자바(Java) (0) | 2021.02.06 |
최근댓글