[99클럽] 코테 스터디 31일차 TIL - 정렬(2733. Neither Minimum nor Maximum)

2024. 6. 21. 15:01·코딩 테스트/99클럽

문제

서로 다른 정수값이 있는 nums[] 배열이 주어진다.
nums[] 배열에서 최댓값도 최솟값도 아닌 값을 찾아 그중 한 개만 반환하라.
만약 그런 값이 없다면 -1을 반환하라.
https://leetcode.com/problems/neither-minimum-nor-maximum/

풀이 방법

  • 내 코드 - 시간 복잡도: O(NlogN)
    1. nums[]를 정렬한다.
    2. nums[]를 두 번째 요소부터 순회하면서 마지막 요소와 같지 않다면 최솟값도 최댓값도 아니므로 반환한다.
    3. 모든 요소를 순회하였음에도 반환이 되지 않았다면 -1을 반환한다.
      Arrays.sort() 시간 복잡도 O(NlogN)
class Solution {
    public int findNonMinOrMax(int[] nums) {

        Arrays.sort(nums);

        for (int i = 1; i < nums.length; i++) {
            if (nums[i] != nums[nums.length-1])
                return nums[i];
        }
        return -1;

    }
}
  • 정렬을 이용하지 않은 코드 - 시간복잡도: O(N)
    1. nums[]의 크기가 3보다 작다면 최솟값도 최댓값도 아닌 값은 존재하지 않으므로 -1을 반환한다.
    2. nums[]를 순회하며 최솟값과 최댓값을 찾는다.
    3. 다시 nums[]를 순회하며 최솟값도 최댓값도 아닌 값을 찾아 반환하고 없다면 -1을 반환한다.
class Solution {
    public int findNonMinOrMax(int[] nums) {
        if (nums == null || nums.length < 3) {
            return -1;
        }

        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;

        for (int num : nums) {
            if (num < min) {
                min = num;
            }
            if (num > max) {
                max = num;
            }
        }

        for (int num : nums) {
            if (num != min && num != max) {
                return num;
            }
        }

        return -1;
    }
}

오늘 회고

문제를 풀 때 정렬을 자주 사용했는데 시간 복잡도가 O(NlogN)이나 걸린 다는 것을 처음 알았다.
다음부턴 정렬보다 효율적인 방법이 있는지 다시 한번 더 생각해본 뒤 풀자.
오늘도 최선을 다하자.

'코딩 테스트 > 99클럽' 카테고리의 다른 글

[99클럽] 코테 스터디 34일차 TIL - ArrayList, Queue(933. Number of Recent Calls)  (0) 2024.06.23
[99클럽] 코테 스터디 33일차 TIL - 큐(1700. Number of Students Unable to Eat Lunch)  (0) 2024.06.22
[99클럽] 코테 스터디 32일차 TIL - 정렬(2089. Find Target Indices After Sorting Array)  (0) 2024.06.21
[99클럽] 코테 스터디 29일차 TIL - 문자열(1528. Shuffle String)  (0) 2024.06.18
[99클럽] 코테 스터디 28일차 TIL - 배열(1773. Count Items Matching a Rule)  (0) 2024.06.17
'코딩 테스트/99클럽' 카테고리의 다른 글
  • [99클럽] 코테 스터디 34일차 TIL - ArrayList, Queue(933. Number of Recent Calls)
  • [99클럽] 코테 스터디 33일차 TIL - 큐(1700. Number of Students Unable to Eat Lunch)
  • [99클럽] 코테 스터디 32일차 TIL - 정렬(2089. Find Target Indices After Sorting Array)
  • [99클럽] 코테 스터디 29일차 TIL - 문자열(1528. Shuffle String)
토자맨
토자맨
  • 토자맨
    개발하는 토자맨
    토자맨
  • 전체
    오늘
    어제
    • 개발 공부
      • 코딩 테스트
        • 코드업 기초 100제
        • 백준
        • 99클럽
        • 자료구조
        • 알고리즘
      • Programming Language
        • 자바(JAVA)
      • Back-end
        • Spring
      • Front-end
        • html
        • css
      • DevOps
        • AWS
        • CI CD
        • Docker
        • 홈서버
        • Git
      • Computer Science
        • 자료구조
        • 알고리즘
        • 운영체제
        • OS,Network,DB,DesignPattern
      • 프로젝트
        • 웨이트 쇼핑몰
      • 공부 로드맵
        • 2학년 겨울방학
        • 3학년 2학기
        • 3학년 겨울방학
      • 일상
        • 기타 정보
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    git filter-repo
    스프링 #spring #스프링 컨테이너 #스프링 컨텍스트
    이진탐색 #이분탐색 #백준
    ec2 멈춤 #ec2 터짐 #ec2 ssh 연결 끊김 #ec2 끊김
    싱글톤 패턴 #싱글톤 컨테이너 #싱글톤 레지스트리 #싱글톤 객체 상태 #무상태 #stateless #유지상태 #staleful
    solid #객체지향설계원칙
    백준 #dfs #11725번
    git filter-branch #commit 수정 #commit
    오블완
    백준 #dfs #알고리즘
    스프링핵심원리 #김영한 #의존관계자동주입 #의존관계 자동 주입
    nvidia container toolkit #
    이진탐색 #이분탐색 #알고리즘
    bfs #최단거리탐색 #프로그래머스
    티스토리챌린지
    백준 #dfs
    피보나치 수 #백준 #dp
    프로그래머스 #dp
    99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #til
    백준 #dp #동적계획법
    bfs #백준
    dfs #백준
    프로그래머스 #dfs
    백준 #이진탐색 #이분탐색
    dfs #알고리즘
    백준 #bfs
    nvidia-docker #docker cuda #docker gpu #엔비디아 도커
    백준 #아기상어2 #bfs
    dp #백준 #동적계획법
    bfs #프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
토자맨
[99클럽] 코테 스터디 31일차 TIL - 정렬(2733. Neither Minimum nor Maximum)
상단으로

티스토리툴바