inblog logo
|
ricota-cheeze
    TIL

    99클럽 코테 스터디 32일차 TIL (비기너)

    jeenie's avatar
    jeenie
    Jun 19, 2024
    99클럽 코테 스터디 32일차 TIL (비기너)

    <문제>

    Given an integer array nums containing distinct positive integers, find and return any number from the array that is neither the minimum nor the maximum value in the array, or -1 if there is no such number.
    
    Return the selected integer.
    
     
    
    Example 1:
    
    Input: nums = [3,2,1,4]
    Output: 2
    Explanation: In this example, the minimum value is 1 and the maximum value is 4. Therefore, either 2 or 3 can be valid answers.
    Example 2:
    
    Input: nums = [1,2]
    Output: -1
    Explanation: Since there is no number in nums that is neither the maximum nor the minimum, we cannot select a number that satisfies the given condition. Therefore, there is no answer.
    Example 3:
    
    Input: nums = [2,1,3]
    Output: 2
    Explanation: Since 2 is neither the maximum nor the minimum value in nums, it is the only valid answer. 
     
    
    Constraints:
    
    1 <= nums.length <= 100
    1 <= nums[i] <= 100
    All values in nums are distinct

    <문제해설>

    체감 난이도: 매우 easy

    서로 다른 양의 정수를 가진 배열 nums가 있다. 이 때 배열에서 가장 작은 수(minimum)와 가장 큰 수(maximum)를 제외한 ‘임의의 숫자’를 반환하라.

    <풀이>

    class Solution {
        public int findNonMinOrMax(int[] nums) {
            //길이가 1,2인 경우에는 바로 반환
            if(nums.length <= 2){
                return -1;
            }
    
            Arrays.sort(nums);
    
            return nums[1];
        }
    }

    <접근방식>

    1. 길이가 2 이하일 때는 바로 -1을 반환하였다.

    2. Arrays.sort 를 통해 nums를 오름차순 정렬한 뒤, 2번째 원소를 반환하였다. (1번째, 마지막 원소를 제외하고 확실하게 존재하는 원소)

    <마무리하며>

    Arrays.sort()를 떠올리지 못했다면 for문을 통해서 중간값을 찾는 어려운 방법으로 갔을 것 같다..!

    Share article

    ricota-cheeze

    RSS·Powered by Inblog