[LeetCode#875] Koko Eating Bananas
·
Algorithm/문제풀이
❐ Description문제 링크Koko Eating Bananas난이도medium / Gold 4~3     ❐ 문제 분석 및 접근 piles : 바나나 더미h : 가드가 자리를 비우는 시간k : 원숭이가 한 시간동안 먹을 수 있는 바나나 갯수 int[] piles = {10, 13, 34, 55}예를 들어 위와 같은 경우에, 원숭이가 시간당 먹을 수 있는 바나나의 갯수(k)가 15라면 원숭이가 모든 바나나 더미를 다 먹는데 걸리는 시간은 아래와 같을 것이다.‣ 10개 - 1시간‣ 13개 - 1시간‣ 34개 - 3시간‣ 55개 - 4시간  원숭이가 먹을 수 있는 최소 바나나 갯수는 1개이고 최대 바나나 갯수는 piles 중 가장 큰 수이다.⇨ 정답 k는 이 사이에 존재한다. 그리고 위의 예시에서 `k ..
[LeetCode#1631] Path With Minimum Effort
·
Algorithm/문제풀이
❐ Description[1631. Path With Minimum Effort] 문제를 다시 풀었는데 제대로 풀지 못해서 정리한다.     ❐ 접근 방식 (Binary Search)여기서는 Mid 값일 때 움직일 수 있는 경로만 움직이는 것이 핵심 포인트다. lowerEffort, upperEffort를 각각 설정한다.최소 : 0최대 : 1_000_000lowerEffort가 upperEffort 보다 작을 때만 while문을 수행한다.시작점으로 부터 좌,우,위,아래를 순회하는데Mid 값보다 작거나 같은 경우에만 이동할수 있다.목표 지점에 도달했는지 확인한다.도달하지 못함 ⇨ 현재 Mid 값으로 부족 ⇨ 더 큰 Mid 값이 필요 ⇨ lower = mid;도달 함 ⇨ 현재 Mid 값으로도 충분 ⇨ 최소..
Redis를 캐시로 사용하기
·
Back-End/Redis
❐ Description주로 고정적인 데이터나, 변화가 적은 데이터에 대해서 캐싱을 많이 사용해왔다. 물론 앞으로도 많이사용할 것 같은데, Redis를 캐시로 더 잘 사용하는 법과 주의할 점에 대해서 알아보고 숙지하자.     ❐ Redis와 캐시1. Warming-up캐시를 사용하게 되면 아래의 이점을 챙길 수 있다.원본 데이터를 가지고 오는 시간을 단축 ➪ API latency 단축애플리케이션 자체의 리소스 최적화RDB에 장애가 생기더라도 캐시에서 데이터를 가지고 올 수 있음 ➪ 장애 시간 단축 그렇다면 어떤 특지을 갖는 데이터를 대상으로 캐싱을 해야할까?변화가 적은 데이터 (상단 배너 공고)자주 검색되는 데이터(최근 검색 이력) 2. Redis as a Cache그렇다면 Redis를 캐시의 용도로 ..
[LeetCode#2517] Maximum Tastiness of Candy Basket
·
Algorithm/문제풀이
❐ Description이번 문제는 Binary Search + Greedy로 해결하는 문제였다.백준으로 치면 실버1~골드4 사이의 난이도 이번 문제에서 문제의 조건이 단조성을 가지기 때문이다. 단조성은 특정 조건이 증가하거나 감소함에 따라결과가 변하지 않고 일정한 방향으로 변화하는 성질을 의미한다.  이와 유사한 문제로 최근에 풀어본 [Path With Minimum Effort] 문제가 있다.     ❐ 접근 방식이분 탐색을 위해 주어진 price 배열을 오름차순 정렬한다.이분 탐색 초기화 최솟값(0)과 최댓값(price 배열 내 최대값 - 최소값) 사이에서 탐색하며 가능한 최적의 답을 찾는다.이분 탐색 수행중간 값 mid를 계산하고, tastiness가 mid일 때 k개의 사탕을 선택할 수 있는지 ..
이력서 및 경력 기술서
·
카테고리 없음
보호되어 있는 글입니다.
Redis 자료구조 활용 사례
·
Back-End/Redis
❐ DescriptionRedis의 자료구조를 적절히 활용해 애플리케이션 성능을 향상 시키며,동시에 개발의 단순성과 편의성을 증대할 수 있는 방법에 대해서 알아보자.+ ) 실무에서 발생할 수 있는 요구 사항을 생각해서 직접 예제를 만들고 실습까지 해보자.   ❐ sorted set을 이용한 사례ChatGPT에게 예제 데이터를 만들어 달라고 했다.Redis의 자료구조 sorted set으로 리더보드 예시를 만들꺼야.2024년 12월 1일 부터 18일까지, 예제 데이터를 만들어 줘.template : ZADD daily-score: user:각 요일마다 데이터수는 10개 이상이고 같은 날에 user의 id는 중복될 수 없어.(다른 날은 상관 없어) 1. 실시간 리더보드 & 랭킹 합산sorted set은 ..
Redis 기본 개념
·
Back-End/Redis
❐ DescriptionRedis의 다양한 자료구조의 종류와 그 특징에 대해서 알아보고,Redis의 키를 관리하는 법을 학습하자.  redis-cli 한글 깨짐  ❐ Redis Data Structure1. String가장 간단한 자료구조 512MB의 문자열 데이터를 저장할 수 있다.모든 종류의 문자열이 binary-safe하다. INCR, INCRBY와 같은 커맨드는 string 자료 구조에 저장된 숫자를 원자적(atomic)으로 조작할 수 있다.이러한 커맨드는 Race condition을 발생시킬 일이 없다.A와 B가 동시에 10이라는 데이터를 가지고 있는 키에 INCR 커맨드를 수행하더라도 하나의 커맨드만 수행돼11이 저장되는 상황이 발생하지 않는다.  2. list하나의 list에는 최대 42억여..
Redis 설정하기
·
Back-End/Redis
❐ Description나는 Docker 환경에서 redis를 설정하기 때문에 책의 가이드와 약간은 차이가 있었다.책 내용 + 공부 과정에서 알게된 지식을 기록해보자.     ❐ Open files 확인아래의 커맨드로 현재 설정된 maxclients 설정 값을 확인할 수 있다.127.0.0.1:6379> config get maxclients1) "maxclients"2) "10000"`maxclients`는 레디스 프로세스에서 받아들일 수 있는 최대 클라이언트 수를 의미한다.  모든 I/O 작업(파일, 소켓, 파이프 등)은 파일 디스크립터를 통해 이루어지기 때문에Redis는 클라이언트의 연결마다 파일(소켓)을 생성한다. 이때 Redis에 설정된 '파일 디스크립터'의 수가 'maxclients 수 + 3..