Advertisement
uopspop

Untitled

Sep 10th, 2017
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.17 KB | None | 0 0
  1. package prac;
  2.  
  3. public class question02_monotonic {
  4.     public static void main(String[] args) {
  5.  
  6.         int[] testA = { 1, 2, 4, 7, 6, 6, 6, 2, 0 };
  7.  
  8.         question02_monotonic question03 = new question02_monotonic();
  9.         System.out.println("result: " + question03.solution(testA));
  10.     }
  11.  
  12.     public int solution(int[] A) {
  13.         int result = 0;
  14.        
  15.         // for testing
  16.         int resultIncrement = 0;
  17.         int resultDecrement = 0;
  18.         int resultConstant = 0;
  19.        
  20.         int len = A.length;
  21.         int incrementContinuousCount = 0;
  22.         int decrementContinuousCount = 0;
  23.         int constantContinuousCount = 0;
  24.         for (int i = 0; i < len; i++){
  25.            
  26.             // get increment one
  27.             if (i+1 < len && A[i] < A[i+1]){
  28.                 ++incrementContinuousCount;
  29.             }else{
  30.                 System.out.println("continuousCount: " + incrementContinuousCount);
  31.                 int addResult = addResult(incrementContinuousCount);
  32.                 System.out.println("addResult: " + addResult);
  33.                 result += addResult;
  34.                 incrementContinuousCount = 0;
  35.                
  36.                 resultIncrement += addResult;
  37.             }
  38.            
  39.             // get decrement one
  40.             if (i+1 < len && A[i] > A[i+1]){
  41.                 ++decrementContinuousCount;
  42.             }else{
  43.                 System.out.println("decrementContinuousCount: " + decrementContinuousCount);
  44.                 int addResult = addResult(decrementContinuousCount);
  45.                 System.out.println("addResult: " + addResult);
  46.                 result += addResult;
  47.                 decrementContinuousCount = 0;
  48.                
  49.                 resultDecrement += addResult;
  50.             }
  51.            
  52.             // get constant one
  53.             if (i+1 < len && A[i] == A[i+1]){
  54.                 ++constantContinuousCount;
  55.             }else{
  56.                 System.out.println("constantContinuousCount: " + constantContinuousCount);
  57.                 int addResult = addResult(constantContinuousCount);
  58.                 System.out.println("addResult: " + addResult);
  59.                 result += addResult;
  60.                 constantContinuousCount = 0;
  61.                
  62.                 resultConstant += addResult;
  63.             }
  64.         }
  65.        
  66.         System.out.println("resultIncrement: " + resultIncrement);
  67.         System.out.println("resultDecrement: " + resultDecrement);
  68.         System.out.println("resultConstant: " + resultConstant);
  69.        
  70.         // exception
  71.         if (result > 1000000000) result = -1;
  72.        
  73.         return result;
  74.     }
  75.    
  76.     private int addResult(int continuousCount){
  77.         return ((continuousCount+1)*continuousCount)/2;
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement