🦾 오늘의 컨디션 및 특이사항(개인 일정 등)
- 수면 시간
- 학습 시간
- 10 : 00 ~ 16 : 00
- 23 : 00 ~ 00 : 00
- 특이사항
📑 세부 학습 내용
📅 스케쥴
- 6시간 독서 + 궁금한 개념 조사 및 학습 + 1시간 코딩테스트 및 풀이 리뷰
- 총 7시간
📖 도서 정독 및 실습
실전 레디스 : 기초, 실전, 고급 단계별로 배우는 레디스 핵심 가이드
- 캐싱 등
RDB 의 보조 역할을 해줄 NoSQL 중 가장 범용적이고 유지보수가 잘 진행 중인 Redis 의 구조부터 기초, 심화 내용, 사용법 등을 확실하게 이해하여, 이후의 프로그래밍에 있어 자신 있고 근거 있게 레디스를 채택하고 사용할 수 있는 개발자를 목표로 독서 시작
- ~ 2.2.5 String형 실행 예시 (p.83)
- 도서 내 모든 내용 이해 및 실습 완료
✏️ 코딩 테스트
⭕ 풀이 코드
class Solution {
public int solution(int[][] targets) {
int answer = 0;
int[][] sortedArr = Arrays.stream(targets)
.sorted((a, b) -> a[1] - b[1])
.toArray(int[][]::new);
double curValue = -1;
for (int[] target : sortedArr) {
int s = target[0];
int e = target[1];
if (curValue <= s) {
++answer;
curValue = e - 0.1;
}
}
return answer;
}
}
- 그리디 알고리즘을 이용해 해결
- 구간 스케쥴링의 핵심인 종료 구간 오름차순 정렬을 이용하여 문제 풀이
- 정렬된 배열을 순회하며, 각 시작 노드가 저장된 노드보다 작거나 같으면 저장 노드 갱신 및 반환 카운터 증가
- 시간 복잡도
O(N * logN)
- 배열 정렬에서
O(N * logN)
- 총
O(N * logN) 의 시간복잡도 소요
💡 어려웠던 것 || 알게 된 것
Redis Insight
redis-cli 의 기능을 내포한 레디스 전용 GUI
- 해당
GUI 를 통해 레디스 커맨드를 인자 도움을 추가로 받으며 쉽게 입력할 수 있고, 결과 또한 직관적으로 보다 쉽게 확인할 수 있음
- 다운로드 링크 : https://redis.io/insight