๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 1021๋ฒˆ - ํšŒ์ „ํ•˜๋Š” ํ

by ์•ˆ์ฃผํ˜• 2022. 3. 11.

๋ฌธ์ œ

 

1021๋ฒˆ: ํšŒ์ „ํ•˜๋Š” ํ

์ฒซ์งธ ์ค„์— ํ์˜ ํฌ๊ธฐ N๊ณผ ๋ฝ‘์•„๋‚ด๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ , M์€ N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ง€๋ฏผ์ด๊ฐ€ ๋ฝ‘์•„๋‚ด๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜์˜ ์œ„์น˜๊ฐ€

www.acmicpc.net

 

์ฝ”๋“œ

// 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๋ฒˆ ์—ฐ์‚ฐ์ธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ–ˆ์„ ๊ฒฝ์šฐ์˜ ์–ด๋Š ๊ฒƒ์ด ์ ์€ ์—ฐ์‚ฐ์œผ๋กœ ๋ฝ‘์•„๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์ „๋ถ€ ๋น„๊ตํ•˜์—ฌ ๊ฒฐ๊ตญ ์ ์€ ์—ฐ์‚ฐ์œผ๋กœ ์ด ์—ฐ์‚ฐ ์ˆ˜์— ๋”ํ•ด์ค๋‹ˆ๋‹ค.

๋Œ“๊ธ€