인프런 알고리즘테스트 문제

37번 LRU 알고리즘(카카오 출제)

풀스택 개발자 2020. 9. 17. 16:30
#include<iostream>
#include<vector>
using namespace std;

int main(void)
{
	int N;
	int S;
	int check;
	cin >> N >> S;
	vector<int> arr(S);
	vector<int> result(N);
	for (int i = 0; i < N; i++)
	{
		result[i] = 0;
	}
	for (int i = 0; i < S; i++)
	{
		cin >> arr[i];
	}
	for (int i = 0; i < S; i++)
	{
		for (int j = 0; j < N; j++)
		{
			if (arr[i] == result[j])
			{
				check = j;
				break;
			}
			else
			{
				check=0;
			}
		}
		if (check > 0)
		{
			for (int k = check; k >= 1; k--)
            {
               result[k] = result[k - 1];
            }
            result[0] = arr[i];
		}
		else
		{
			for (int j = N - 1; j >= 1; j--)
			{
				result[j] = result[j - 1];
			}
			result[0] = arr[i];

		}
	}
	
	for (int i = 0; i < N; i++)
	{
		cout << result[i] << " ";
	}
}