2025-10-14 학습 기록

랏 뜨·2025년 10월 14일

📑 세부 학습 내용


📅 스케쥴

  • 4시간 30분 독서 + 궁금한 개념 조사 및 학습 + 1시간 코딩테스트 및 풀이 리뷰
  • 5시간 30분

🧷 학습 시간 인증


📖 도서 정독 및 실습

실전 레디스 : 기초, 실전, 고급 단계별로 배우는 레디스 핵심 가이드

  • 캐싱 등 RDB 의 보조 역할을 해줄 NoSQL 중 가장 범용적이고 유지보수가 잘 진행 중인 Redis 의 구조부터 기초, 심화 내용, 사용법 등을 확실하게 이해하여, 이후의 프로그래밍에 있어 자신 있고 근거 있게 레디스를 채택하고 사용할 수 있는 개발자를 목표로 독서 시작
  • 3. 고급 기능 (p.204) ~ 3.4.2 모듈을 실제로 사용하는 경우 (p.250)
  • 도서 내 모든 내용 이해 및 실습 완료
    • 궁금한 부분은 따로 조사 후 학습

✏️ 코딩 테스트

⭕ 문제 풀이

class Solution {

    static int LIMIT = 10_000_000;
    int n;

    public int[] solution(long begin, long end) {
        n = (int) (end - begin + 1);
        int[] dp = new int[n];

        for (long i = begin; i <= end; i++) {
            dp[(int) (i - begin)] = calculate(i);
        }

        return dp;
    }

    private int calculate(long num) {
        if (num == 1) {
            return 0;
        }

        int result = 1;
        for (long i = 2; i * i <= num; i++) {
            if (num % i == 0) {
                long gcd = num / i;

                if (gcd <= LIMIT) {
                    return (int) gcd;
                }

                if (i <= LIMIT) {
                    result = (int) i;
                }
            }
        }

        return result;
    }
}
  • 풀이 실패
    • 효율성 테스트를 통과할만한 아이디어를 떠올리지 못함
    • 아이디어는 도움 받아 구현
  • 최종 시간복잡도 : O(N x √E)
    • dp 기록 반복문 : O(N)
    • 내부 calculate() 반복문 : O(√E)
      • √Ebegin ~ end 의 약수
      • 최대 end
    • 최종 시간복잡도 : O(N x √E)

💡 어려웠던 것 || 알게 된 것


  • 금일은 없음
profile
기록

0개의 댓글