You will be fine

<Algorithm> 178. 의석이의 우뚝 선 산(SWExpert)

by BFine
반응형

1. 의석이의 우뚝 선 산(SWExpert)

   사용 알고리즘 : 규칙

  • 규칙을 찾아야 하는 느낌은 있었는데 잘 떠오르지 않았다. 나는 이런 규칙 찾는 유형이 조금 약한 것 같다. 많이 풀어봐야겠다.....


문제에 대한 접근&생각

  1. 왼쪽올라온산 * 아래로 내려간산 = 우뚝 선 산 경우의 수

다른 방법 풀이


내 코드 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.util.Scanner;
 
public class Solution {
    static int UP =1;
    static int DOWN =2;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        /***************************
         * 가장 높은산을 기준으로 올라오는산
         * 과 내려가는 산을 곱하면 원하는 
         * 우뚝선산의 경우의 수를 구할 수 있다.
         ***************************/
        for(int c=1; c<=t; c++) {
            int n = sc.nextInt();
            int[] arr = new int[n];
            
            for(int i = 0; i < n; i++)
                arr[i] = sc.nextInt();
            
            int up,down,total;
            up=down=total=0;
            int flag = UP;
            
            for(int i = 0; i < n-1; i++) {
                if(flag == UP) {
                    if(arr[i]<arr[i+1]) {
                        up++;
                    }else {
                        down++;
                        flag = DOWN;
                    }
                }else {
                    if(arr[i]>arr[i+1]) {
                        down++;
                    }else {
                        total+= up * down;
                        up = 1;
                        down = 0;
                        flag = UP;
                    }
                }
            }
            total+= up *down; // 내려오고 끝나는 경우 처리
            System.out.println("#"+c+" "+total);
        }
    }
}
 
cs

반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기