<Algorithm> 178. 의석이의 우뚝 선 산(SWExpert)
by BFine반응형
1. 의석이의 우뚝 선 산(SWExpert)
사용 알고리즘 : 규칙
-
규칙을 찾아야 하는 느낌은 있었는데 잘 떠오르지 않았다. 나는 이런 규칙 찾는 유형이 조금 약한 것 같다. 많이 풀어봐야겠다.....
문제에 대한 접근&생각
- 왼쪽올라온산 * 아래로 내려간산 = 우뚝 선 산 경우의 수
다른 방법 풀이
규칙은 같고 큐에 부등호를 넣어서 카운트 하는 방법 [참고] https://jokerkwu.tistory.com/92
내 코드
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 |
반응형
'공부(2018~2019) - 스킨변경전 > Algorithm' 카테고리의 다른 글
<Algorithm> 180. 은기의 송아지 세기(SWExpert) (0) | 2019.04.21 |
---|---|
<Algorithm> 179. 진수의 홀수약수(SWExpert) (0) | 2019.04.21 |
<Algorithm> 177. 자기방으로 돌아가기(SWExpert) (0) | 2019.04.21 |
<Algorithm> 176. 가능한시험점수(SWExpert) (0) | 2019.04.20 |
<Algorithm> 175. 중량제한(BJO) (0) | 2019.04.20 |
블로그의 정보
57개월 BackEnd
BFine