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

[๋ฐฑ์ค€,c++] 1655๋ฒˆ - ๊ฐ€์šด๋ฐ๋ฅผ ๋งํ•ด์š”

by ์•ˆ์ฃผํ˜• 2022. 6. 21.

๋ฌธ์ œ

1655๋ฒˆ: ๊ฐ€์šด๋ฐ๋ฅผ ๋งํ•ด์š”

์ฒซ์งธ ์ค„์—๋Š” ๋ฐฑ์ค€์ด๊ฐ€ ์™ธ์น˜๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๊ทธ ๋‹ค์Œ N์ค„์— ๊ฑธ์ณ์„œ ๋ฐฑ์ค€์ด๊ฐ€ ์™ธ์น˜๋Š” ์ •์ˆ˜๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ •์ˆ˜๋Š” -1

www.acmicpc.net

์ฝ”๋“œ

#include <iostream>
#include <queue>
#include <cmath>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    priority_queue<int> left;
    priority_queue<int,vector<int>, greater<>> right;
    
    int N; cin>>N;
    for(int i=1; i<=N; i++){
        int inp; cin>>inp;
        
        if(i==1) left.push(inp);
        else if(right.empty()){
            if(left.top()<inp) right.push(inp);
            else left.push(inp);
        }
        else{
            if(inp>right.top()) right.push(inp);
            else left.push(inp);
        }
        int diff = abs((int)right.size() - (int)left.size());
        if(diff>=2){
            if(right.size()>left.size()){
                left.push(right.top());
                right.pop();
            }
            else{
                right.push(left.top());
                left.pop();
            }
        }
        
        if(i&1){    //ํ™€์ˆ˜์ผ ๋•Œ
            if(right.size()>left.size()) cout<<right.top()<<'\n';
            else cout<<left.top()<<'\n';
        }
        else{   //์ง์ˆ˜์ผ ๋•Œ
            cout<<min(left.top(), right.top())<<'\n';
        }
        
    }
}

ํ’€์ด

[๋ฐฑ์ค€,c++] 2696๋ฒˆ - ์ค‘์•™๊ฐ’ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ 2696๋ฒˆ: ์ค‘์•™๊ฐ’ ๊ตฌํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T(1 โ‰ค T โ‰ค 1,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ˆ˜์—ด์˜ ํฌ๊ธฐ M(1 โ‰ค M โ‰ค 9999, M์€ ํ™€์ˆ˜)์ด ์ฃผ์–ด์ง€๊ณ , ๊ทธ ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ์ด

dkswnkk.tistory.com

์œ„ ๋ฌธ์ œ๋ž‘ ์ƒ๋‹นํžˆ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
heap์„ ๋‘ ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ํž™์˜ top ๊ฐ’๋“ค์ด ์ค‘์•™๊ฐ’์ด ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‘ ํž™์˜ ์ฐจ์ด๊ฐ€ 2 ์ด์ƒ์ด ๋‚  ๊ฒฝ์šฐ ์‚ฌ์ด์ฆˆ๊ฐ€ ํฐ ์ชฝ์˜ ๊ฐ’์„ ์ž‘์€ ์ชฝ์˜ ๊ฐ’์œผ๋กœ ์˜ฎ๊ฒจ๊ฐ€๋Š” ์•„์ด๋””์–ด๋กœ ํ•ด๊ฒฐํ•˜๋ฉด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€