99클럽 코테 스터디 1일차 TIL + 오늘의 학습 키워드

윤휘영·2025년 1월 13일
0

1. 오늘의 학습 키워드

  • 백준 2776-암기왕 (이분 탐색)

2. 공부한 내용 본인의 언어로 정리하기

  • 이분 탐색 메서드
static boolean isExist(int tar, int[] arr) {
        int l = 0, r = arr.length - 1;
        while(l <= r) {
            int m = (l + r) / 2;
            if(arr[m] == tar) return true;
            else if(tar > arr[m]) l = m + 1;
            else r = m - 1;
        }
        return false;
    }

3. 오늘의 회고

3.1 어떤 문제가 있었고, 나는 어떤 시도를 했는지

  • n과 m의 최댓값이 100만이므로, 선형 탐색을 하면 약 1조의 시간복잡도를 가집니다. 따라서 시간 초과가 날 것입니다.

3.2 어떻게 해결했는지

  • '수첩 2' 배열을 소트한 뒤, '수첩 2' 배열을 순회하며 '수첩 1'의 원소가 있는지 이분 탐색을 하면, nlogn + m x logn 의 시간복잡도를 가집니다. 이는 1억이 안 되므로 시간 안에 풀 수 있습니다.
  • 자바가 제공하는 이분 탐색 메서드가 있지만, 직접 구현해보았습니다.

3.3 무엇을 새롭게 알았는지

  • br.readLine()이 던지는 예외에는 NumberFormatException도 있었습니다. 이클립스에서 자동완성 해주길래 알았습니다.

3.4 내일 학습할 것은 무엇인지

  • 오늘은 첫 날이라 쉬운 문제가 나온 게 아닐까 싶습니다.
  • 내일 출제되는 문제의 알고리즘에 대해 공부할 것이고, 개인적으로 삼성 기출문제도 풀 계획입니다.
  • 내일 어떤 문제가 나올지 기대됩니다.

0개의 댓글