목록2024/07 (14)
Lewis's Tech Keep
링크https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이그리디를 통해 푸는 문제였다. 광물은 캐기 시작하면 바꿀 수 없다. 광물은 연속으로 5개씩 캔다. 그리고 테스트 케이스의 최대 개수가 적다. 의 힌트를 생각하면 해당 유형임을 좀 더 파악하기 쉬울 것 같다. 각 광물들을 5개의 그룹으로 하나씩 묶는다. 그리고 광물들의 weight를 준다.weight는 다이아몬드라고 했을 때 31, 철이라고 했을 때 6 돌이라고 했을 때 각각 1로 주었다고 생..
링크https://school.programmers.co.kr/learn/courses/30/lessons/178870# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이처음에는 완전탐색으로 풀었지만 실패했다. 투포인터로 변경 후 적용으로 완료하였다. 자세한 설명은 이 분 블로그에 친절하게 잘 되어 있어서 링크를 남긴다. 더보기class Solution { public int[] solution(int[] sequence, int k) { for (int i=0; i endIndex-1 - startIndex) { ..
해시 키 재배치(rehash) 문제부하를 균등하게 나누려면 해시 함수를 이용하면 좋음serverIndex = hash(key) % N (N은 서버의 개수) 기존 키가 삭제되거나 추가되면 이슈가 발생할 수 있음삭제 될 경우 엉뚱한 서버에 접속 -> 대규모 캐시 미스 발생 가능안정 해시안정 해시는 해시 테이블 크기가 조정될 때 오직 k(키 개수)/n(슬롯 개수)개의 키만 재배치하는 기술서버와 키를 균등 분포(uniform distribution) 해시 함수를 사용 해 해시 링에 배치키의 위치에서 링을 시계 방향으로 탐색하다 만나는 최초의 서버가 키가 저장될 서버다파티션 (해시 공간)의 불균형 문제가 생김 -> 가상 노드가 들어옴가상 노드하나의 서버가 링 위에 여러 개의 가상 노드를 가지는 것시계방향으로 링을..
처리율 제한 장치(rate limiter)란?클아이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치 특징특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한요청 횟수가 임계치를 넘어가면 추가로 도달한 모든 호출은 처리가 중단(block) 이점DoS 자원 고갈 방지비용 절감추가 요청을 block 하기 때문에 더 많은 서버 자원이 필요하지 않게 됨서버 과부하 방지bot에서 오는 트래픽이나 사용자의 잘못된 이용패턴으로 유발된 트래픽을 걸러내는데 활용 요구되는 사항들낮은 응답시간가능한 적은 메모리분산형 처리율 제한여러 서버나 프로세스에서 공유예외 처리 - 발생한 경우에 사용자에게 분명히 보여주기높은 fault tolerance : 제한 장치에 장애가 생기더라도 전체 시스템에 영향을 주..
문제https://school.programmers.co.kr/learn/courses/30/lessons/258711?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정리어떻게 풀어야 할 지 감도 잡히지 않아서 다른 분들 풀이를 많이 참고했다. 정식 풀이 링크갯수를 구해야 하는 그래프 모양은 3개다.막대 / 8자 / 도넛 모양이다. 막대나가는 간선은 2개 이상 존재하고 들어오는 간선은 존재하지 않는다. (도넛 모양 그래프, 막대 모양 그래프, 8자 모양 그래프의 수의 합은 2이상 이라는 조건이 있음) 8자나가는 간선이 2개 이상 존재..
링크https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정리 실패 코드 dfs 로 하려고 시도했으나 실패하였다.각 열 기준으로 하나씩 검사하면서 있는 것은 visited 체크를 해주면서 합계를 구한다.하나의 열을 다 돌면 합계를 구한다. 정확성은 성공했으나 효율성에서 실패. 중간부터 실패할 것이라 감은 왔으나 다른 방법이 딱히 생각나지 않았기에 진행하였음. 성공 코드 bfs로 처리한 다음 어떻게 효율적으로 처리할 것인지가 중요했다. 각 칸 기준으로..