728x90

- 증가했다가 감소하는 수열인지 판별

 

 

(입력)

[1, 2, 3, 4]
[1, 2, 3, 4, 2, 1]
[1, 2, 2, 4, 2, 1]

 

(출력)

 

 

# for문 사용


public class Main {

    private String solution(int[] nums) {

        String result = "YES";
        boolean peak = false;

        for(int i=1; i<nums.length; i++) {
            if(nums[i-1] == nums[i]) {
                return "NO";
            }
            if(!peak) {
                if(nums[i-1] > nums[i]) peak = true;
            }
            else {
                if(nums[i-1] < nums[i]) return "NO";
            }
        }

        if(!peak) return "NO";

        return result;
    }

    public static void main(String[] args) {
        Main T = new Main();
        int[] nums = new int[]{1, 2, 3, 4};
        int[] nums2 = new int[]{1, 2, 3, 4, 2, 1};
        int[] nums3 = new int[]{1, 2, 2, 4, 2, 1};
        System.out.println(T.solution(nums)); // NO
        System.out.println(T.solution(nums2)); // YES
        System.out.println(T.solution(nums3)); // NO
    }
}

 

 

# while문 사용


public class Main {

    private String solution(int[] nums) {

        String result = "YES";
        int n = nums.length;
        int i = 0;

        while(i+1 < n && nums[i] < nums[i+1]) i++; // 증가 부분수열
        if(i==0 || i==n-1) return "NO"; // 증가수열 or 감소수열
        while(i+1 < n && nums[i] > nums[i+1]) i++;
        if(i != n-1) return "NO"; // 수열 끝까지 감소하지 않는 경우

        return result;
    }

    public static void main(String[] args) {
        Main T = new Main();
        int[] nums = new int[]{1, 2, 3, 4};
        int[] nums2 = new int[]{1, 2, 3, 4, 2, 1};
        int[] nums3 = new int[]{1, 2, 2, 4, 2, 1};
        System.out.println(T.solution(nums)); // NO
        System.out.println(T.solution(nums2)); // YES
        System.out.println(T.solution(nums3)); // NO
    }
}
반응형

'전.java' 카테고리의 다른 글

[Java] 수열의 경우수  (0) 2023.02.01
[Java] 최대 길이 바이토닉  (0) 2023.02.01
[Java] 가장 높은 증가수열  (0) 2023.01.31
[Java] 제곱수 정렬  (0) 2023.01.31
[Java] 공부시간  (0) 2023.01.31
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기