kakao
kakao_캐시
kakao_캐시
2021.09.01Cache Size만큼 돌면서 HashMap에 채워 나간다. Hit라면 +5 하한다. Cache 가 가득 차면 하나를 줄인다. import java.util.*; class Solution { public int solution(int cacheSize, String[] cities) { int answer = 0; LinkedHashMap hm = new LinkedHashMap(); if(cacheSize == 0){ return cities.length*5; } int cnt = 1; for(int i=0; i
Kakao_보석쇼핑
Kakao_보석쇼핑
2021.06.10시작 효율성을 검증하는 문제다. 사실 문제 요구사항은 크게 어렵지 않다. 다만, 보석의 개수가 100,000 이라는 점에서 반복문을 2번만 돌려도 시간초과가 날 수 있으니 유의해야 한다. 배열의 범위가 커지면 O(N)이나 혹은 그 이하로 프로그램이 수행해야 하는 경우가 종종 있다. 이 문제를 접근해서 해결할 수 있는 방법은 투포인트 방법이 있다. 여기서는 원포인트, 투포인트 접근 모두 다뤄보고자 한다. 알고리즘 동작 원리(투포인트) 쉽게 말하면 보석을 조금씩 덜어내고 마침내 사라지면 마지막으로 보석을 본 시점부터 끝까지 돌며 해당 보석을 찾아가는 과정을 나열한 것이다. 조금 복잡해 보이지만, 별거 없다! 눈여겨 봐야할 것은 1. 중복제거해서 쥬얼리 종류 파악 2. HashMap에 각 쥬얼리가 얼만큼 등장..
알고리즘102 :: KAKAO_셔틀버스
알고리즘102 :: KAKAO_셔틀버스
2020.09.22몇번 읽고 문제가 잘 이해가 안되었습니다. ㅠ__ㅠ 그래서 몇 가지 검색해보다가 알게된 사실을 예제로 설명해 보겠습니다. example1) n=1, t=1, m=5, timetable=["08:00","08:01","08:02","08:03"] 셔틀은 09:00 부터 출발합니다. 셔틀은 1번 1분 간격으로 역에 도착하지만 한번에 5명을 태울 수 있으므로 08:00~08:03, (콘이 탈 시각 08:04) 모두 태울 수 있습니다. 따라서, example2) n=2, t=10, m=2, timetable=["09:10","09:09","08:00"] 마찬가지로 셔틀이 09:00 부터 출발하는것을 생각해보면 08:00 에 한명을 태웁니다. 셔틀이 총 2번 10분 간격으로 오기때문에 다음 올 셔틀은 09:10 ..