SSONG Cloud

[SWEA] 6730 장애물 경주 난이도 본문

Algorithm/SW Expert Academy

[SWEA] 6730 장애물 경주 난이도

SSONGMI 2021. 1. 29. 23:21
반응형

1. T로 테스트 케이스 수를 입력받아준다.

2. steps에 각각 계단의 높이를 넣어준다.

3. 올라갈 때와 내려갈 때를 각각 구해야하기 때문에 그 최대값을 up, down으로 잡아준다.

4. 올라갈때는 해당번째의 수보다 그 다음 수가 더 크기 때문에 그 값의 차이인 diff가 음수가 되고, 이를 차이로 구하기 위해 Math.abs를 사용하여 그 차이값을 계산해준다.

5. 내려갈때는 해당번째의 수보다 그 다음 수가 더 작기 때문에 그 값의 차이인 diff가 음수가 된다.

6. 각각 올라갈 때와 내려갈 때의 최대값을 up, down에 갱신시켜 준다.

import java.util.Scanner;
import java.io.FileInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
class Solution
{
    public static void main(String args[]) throws Exception
    {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));       
        int T = Integer.parseInt(bf.readLine().trim());
        for(int tc = 1; tc <= T; tc++) {
            int N = Integer.parseInt(bf.readLine().trim());
            String str = bf.readLine();
            String[] arr = str.split(" ");
            int[] steps = new int[arr.length];
            int up = 0;
            int down = 0;
            for(int i = 0; i < arr.length; i++) {
                steps[i] = Integer.parseInt(arr[i]);
            }
            for(int i = 0; i < arr.length-1; i++) {
                int diff = steps[i] - steps[i+1];
                if(diff < 0 && up < Math.abs(diff) )
                    up = Math.abs(diff);
                else if(diff >= 0 && down < diff )
                    down = diff;
            }
            System.out.println("#" + tc + " " + up + " " + down);
        }
    }
}
반응형
Comments