๋ฌธ์
์ฝ๋
// 22:49~23:22
#include <iostream>
#include <deque>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int N,M,ans=0; cin>>N>>M;
deque<int>dq;
for(int i=1; i<=N; i++) dq.push_back(i);
for(int i=0; i<M; i++){
int find; cin>>find;
if(find == dq.front()) dq.pop_front();
else{
int cnt_second=0, cnt_third=0;
deque<int> temp_second = dq, temp_third = dq;
while(true){ // 2๋ฒ ์ฐ์ฐ
if(temp_second.front()==find){
temp_second.pop_front();
break;
}
temp_second.push_back(temp_second.front());
temp_second.pop_front();
cnt_second++;
}
while(true){ //3๋ฒ ์ฐ์ฐ
if(temp_third.front()==find){
temp_third.pop_front();
break;
}
temp_third.push_front(temp_third.back());
temp_third.pop_back();
cnt_third++;
}
if(cnt_second<cnt_third){
ans += cnt_second;
dq = temp_second;
}
else{
ans += cnt_third;
dq = temp_third;
}
}
}
cout<<ans;
}
ํ์ด(32๋ถ)
queue์ front๊ฐ ๋ฝ์๋ด๋ ค๊ณ ํ๋ ์์น์ผ ๋๋ ๋ฐ๋ก ๋ฝ์๋ ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ 2๋ฒ ์ฐ์ฐ์ธ ์ผ์ชฝ์ผ๋ก ์ด๋ํ์ ๊ฒฝ์ฐ์ 3๋ฒ ์ฐ์ฐ์ธ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ์ ๊ฒฝ์ฐ์ ์ด๋ ๊ฒ์ด ์ ์ ์ฐ์ฐ์ผ๋ก ๋ฝ์๋ผ ์ ์๋์ง ์ ๋ถ ๋น๊ตํ์ฌ ๊ฒฐ๊ตญ ์ ์ ์ฐ์ฐ์ผ๋ก ์ด ์ฐ์ฐ ์์ ๋ํด์ค๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 1912๋ฒ - ์ฐ์ํฉ (0) | 2022.03.15 |
---|---|
[๋ฐฑ์ค,c++] 1913๋ฒ - ๋ฌํฝ์ด (0) | 2022.03.15 |
[๋ฐฑ์ค,c++] 1094๋ฒ - ๋ง๋๊ธฐ (0) | 2022.03.14 |
[๋ฐฑ์ค,c++] 2346๋ฒ - ํ์ ํฐ๋จ๋ฆฌ๊ธฐ (0) | 2022.03.11 |
[๋ฐฑ์ค,c++] 13305๋ฒ - ์ฃผ์ ์ (0) | 2022.03.11 |
[๋ฐฑ์ค,c++] 10799๋ฒ - ์ ๋ง๋๊ธฐ (0) | 2022.03.10 |
๋๊ธ