• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

배열의 처음부터 접근해도 괜찮을까요?

22.05.08 23:00 작성 조회수 154

0

 

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <vector>
#include <algorithm>

int main()
{
	freopen("input.txt", "rt", stdin);

	int cacheSize, tasks;

	scanf("%d %d", &cacheSize, &tasks);

	std::vector<int> cacheList(cacheSize, 0);

	int i = 0;
	for (int task = 0; task < tasks; task++)
	{
		if (i != cacheSize-1)
		{
			i++;
		}
		int k;
		int input;
		int pos = 0;
		scanf("%d", &input);

		// Hit 위치를 찾아낸다.
		for (k = 0; k <= i; k++)
		{
			if (cacheList[k] == input)
			{
				pos = k;
			}
		}

		// Hit가 없으면
		if (pos == 0)
		{
			for (k = i - 1; k >= 0; k--)
			{
				cacheList[k + 1] = cacheList[k];
			}
		}
		else
		{
			for (k = pos - 1; k >= 0; k--)
			{
				cacheList[k + 1] = cacheList[k];
			}
		}
		cacheList[k + 1] = input;
	}

	for (int i = 0; i < cacheSize; i++)
	{
		printf("%d ", cacheList[i]);
	}

	return 0;
}

 

반복횟수를 줄여보고자 첫 인덱스부터 접근했보았습니다.

괜찮은 코드일까요?

 

답변 1

답변을 작성해보세요.

1

안녕하세요^^

네. 좋은 코드입니다.