#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<int> dq;
int m, n, cnt = 0;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
dq.push_back(i);
}
while (m--)
{
int idx, num;
cin >> num;
for (int i = 0; i < n; i++)
{
if (dq[i] == num)
{
idx = i;
break;
}
}
if (idx < dq.size() / 2 + 1)
{
for (int i = 0; i < dq.size(); i++)
{
if (dq.front() == num)
{
dq.pop_front();
break;
}
dq.push_back(dq.front());
dq.pop_front();
cnt++;
}
}
else
{
for (int i = 0; i < dq.size(); i++)
{
if (dq.front() == num)
{
dq.pop_front();
break;
}
dq.push_front(dq.back());
dq.pop_back();
cnt++;
}
}
}
cout << cnt;
}
제시된 3개의 연산 중 몇번째 방법이 더 효율적일지를 판단할때 ,
들어온 숫자의 인덱스값을 기준으로 판단했다.