Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 1764
- 구현
- 해시구현
- qorwns
- 게리멘더링2
- C/C++ 구현
- 5397
- 백준 17779
- 백준 2447
- Stack 이란
- 시간 복잡도
- 풀이
- 백준 1158
- 백준 17471
- 자료구조
- 원판 돌리기
- 조세퍼스 순열
- 버킷 정렬
- 백준 1406
- 스택의 특징
- AVL 시간 복잡도
- ㅣ풀이
- 해시 구현
- 백준 17822
- dfs
- c#
- 백준 5397
- 별 찍기 10
- 백준
- heap
Archives
- Today
- Total
홍시홍의 프로그래밍
[2017 카카오 코딩테스트] 캐시 본문
분류
시뮬레이션
요구사항
캐시를 이용하여 캐시 비용 구하기
풀이
운영체제 공부하면서 배웠던 캐시이다
캐시 크기가 작아 기존에 있는 데이터를 찾을때 처음부터 끝까지 찾는 식으로 했다
더 쉬운 풀이가 있을 거 같다
#include <string>
#include <vector>
#include <iostream>
#include <queue>
#include <string.h>
#include <algorithm>
#include <deque>
#include <map>
using namespace std;
struct go{
string str;
int flag;
int index;
};
int cacheSize=0;
go cache[33];
bool Find(string str){
for(int i=0 ; i <cacheSize; i++){
if( cache[i].str==str){
return true;
}
}
return false;
}
int Get_Index(){
int minindex=0;
int minvalue=987654321;
for(int i=0 ; i <cacheSize; i++){
if( cache[i].index < minvalue){
minvalue=cache[i].index;
minindex=i;
}
}
return minindex;
}
int main(){
cacheSize=3;
int cacheIn=0;
vector<string> city={"Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Rome", "Paris", "Jeju", "NewYork", "Rome"};
int answer=0;
for(int i =0 ; i <city.size() ; i++){
//있으면 넘어가고
if(Find(city[i])){
answer+=1;
}
else{
answer+=5;
//없으면 비어있는 공간이 있으면 비어있는 공간에 넣고
if(cacheIn < cacheSize){
for(int j=0 ; j <cacheSize; j ++){
if(cache[j].flag==0){
cache[j].flag=1;
cache[j].str=city[i];
cache[j].index=i;
cacheIn++;
break;
}
}
}
else{
//LRU로 제일 이전 인덱스 찾아서 그놈이랑 교환
int Find_index=Get_Index();
//업데이트 해주기
cache[Find_index].flag=1;
cache[Find_index].str=city[i];
cache[Find_index].index=i;
}
}
}
cout<<answer<<endl;
}
'알고리즘 문제풀이 > 카카오' 카테고리의 다른 글
[2017 카카오 코딩테스트] 비밀 지도 (0) | 2020.07.24 |
---|---|
[2017 카카오 코딩테스트] 다트 게임 (0) | 2020.07.24 |
[2020 카카오 인턴십 코딩테스트] 경주로 건설 (0) | 2020.07.23 |
[2020 카카오 인턴십 코딩테스트] 수식 최대화 (0) | 2020.07.23 |
[2020 카카오 인턴십 코딩테스트] 키패드 누르기 (0) | 2020.07.23 |
Comments