[D2] SWEA 1940 가랏! RC카! - Java
by Rev_SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제에서 제시된 조건을 잘 활용하면 될 것 같다.
RC카의 가속, 감속의 속도를 지정해주어 진전한 총 거리를 계산하는 문제이다.
풀이
import java.util.Scanner;
public class S_1940 {
// 가랏! RC카!
static int nSpeed;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int i = 0; i < t; i++) {
int n = sc.nextInt();
int speed = 0; // 현재 속도를 나타내는 변수
int distance = 0;
for (int j = 0; j < n; j++) {
int s = sc.nextInt(); // 가속 또는 감속
if (s != 0) {
nSpeed = sc.nextInt();
}
switch (s) {
case 0:
distance += speed;
break;
case 1:
speed += nSpeed;
distance += speed;
break;
case 2:
if (speed < nSpeed) {
speed = 0;
} else {
speed -= nSpeed;
distance += speed;
}
break;
}
}
System.out.println("#" + (i+1) + " " + distance);
}
}
}
가속, 감속 또는 현재 속도 유지의 case를 받아서 실행을 해야하기 때문에 나는 switch문을 사용했다.
int n = sc.nextInt();
int speed = 0; // 현재 속도를 나타내는 변수
int distance = 0;
for (int j = 0; j < n; j++) {
int s = sc.nextInt(); // 가속 또는 감속
if (s != 0) {
nSpeed = sc.nextInt();
}
현재 속도를 저장해주는 변수 speed와 진전한 거리 distance 변수를 선언해주었다.
그리고 만일 가속, 감속, 유지를 지정해주는 변수 s가 0이 입력되었을 경우는 속도를 입력받지 않기 때문에 s가 0이 아닐 때만 가속 또는 감속할 속도 변수 nSpeed를 입력해준다.
switch (s) {
case 0:
distance += speed;
break;
case 1:
speed += nSpeed;
distance += speed;
break;
case 2:
if (speed < nSpeed) {
speed = 0;
} else {
speed -= nSpeed;
distance += speed;
}
break;
}
그리고 switch문 입성!
우리는 현재 달리고 있는 속도 speed 변수가 있고, 입력 받은 내용들에 따라 speed를 조절하고 거리를 더해줄 것이다.
0이 입력될 경우는 현재 속도 유지이기 때문에 현재 속도 그대로 거리 변수에 더해주고, 1이 입력될 경우에는 가속하는 경우이기 때문에 현재 속도에 가속할 값을 더해준다. 2가 입력될 경우에는 먼저 감속할 값이 현재 속력보다 큰지 검증하고 연산해주면 된다.
이렇게 연산이 끝난 후 distance 변수를 출력하면 정답을 구할 수 있다.
처음에 현재 속도가 감속할 속도보다 작을 경우에 처리를 해줘야하는걸 못봐서 Fail이 떴는데... 조건을 잘 읽어봐야한다는 중요성을 느꼈다. 문제에 제약사항이 있다면 꼭 꼼꼼히 따져보고 문제를 풀도록 하자.
'PS > PS' 카테고리의 다른 글
[프로그래머스] SQL Lv.3 - 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2024.03.20 |
---|---|
[D2] SWEA 1945 소인수분해 - Java (0) | 2022.11.14 |
[D3] SWEA 2805 농작물 수확하기 - Java (0) | 2022.11.11 |
[D2] SWEA 1948 날짜 계산기 - Java (0) | 2022.11.10 |
[D2] SWEA 1954 달팽이 숫자 - Java (0) | 2022.11.10 |
블로그의 정보
Hi Rev
Rev_