목록큐 (28)
N
LRU 형태의 캐시이므로 큐 형태로 접근을 하였다. 데이터 접근이 쉽도록 벡터를 사용하였지만, 방식은 큐와 같다. 우선 cacheSize가 0이면 캐시가 불가능하므로 데이터 수 * 5를 바로 리턴하였다. 0이 아니라면 for문을 통해 cities.size()만큼 반복한다. 대소문자 구분 없이 같은 단어이면 동일하게 처리해야하므로 transform을 사용하여 모두 소문자로 바꿔주었다. 그리고 위에서 선언했던 string형 벡터 cache를 이용한다. cache에 현재 데이터가 있는지 find() 함수를 통해 찾도록 한다. 만약 itr이 cache.end()라면 cache에는 cities[i]가 없다는 뜻이므로 cache miss가 발생한다. answer += 5를 해주기 전에 cache.size()를 검사..

우선 개발을 하는 데 걸리는 시간을 day 벡터에 넣어준다..! 예시대로 하면 day에는 {7, 3, 9}가 들어가게 된다. 그리고 while문으로 day가 빌 때까지 실행을 한다. 맨 앞에 있는 시간을 current에 저장해 두고, int형 ind를 선언한다. ind는 current보다 큰 수를 만날때까지 ind++을 해준다. 큰 수를 만나면 break를 하여 for문을 빠져나간 후, day 벡터의 처음부터 ind까지 지워버린다. 그리고 ind를 answer에 넣어주면 배포의 개수를 알 수 있다..! #include #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer,..

큐 형태를 생각하면서 풀면 되는 문제..! 큐를 선언하면 되지만 for문 돌리면서 큐에 넣기 귀찮아서 그냥 벡터로 하였다... tmp 벡터에 priorities를 넣어주고, 내림차순으로 tmp를 정렬한다. 그리고 tmp.front()와 priorities.front()가 같지 않으면 location--를 해준다.(location == 0 이면, priorities.size() - 1을 해준다..!) 그 후 priorities.front()를 맨 마지막에 넣어준다. 만약 priorities.front()와 tmp.front()가 같고, location == 0이면 내가 요청한 문서가 프린터 되는 시점이다. 바로 return answer을 해주면 된다. 하지만 location != 0이면 내가 요청한 순서가..

해당 인덱스의 가격이 떨어지지 않은 기간을 세어주면 된다..! 프로그래머스에는 스택/큐로 구분이 되어있지만, 간단하게 for문으로 풀 수 있다고 생각을 하였다..! 이중 for문으로 i는 현재 가격의 위치, j는 i + 1로 시간을 세려고 하는 위치를 나타낸다. sec는 시간을 나타내고, 두번째 for문을 돌 때마다 sec++ 해준다. 그리고 prices[i]보다 prices[j]가 크면 break 해주고 탈출한다. 마지막에는 answer에 push 해주면 끝..! #include #include using namespace std; vector solution(vector prices) { vector answer; for(int i = 0; i < prices.size(); i++) { int sec..