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

[๋ฐฑ์ค€,c++] 1377๋ฒˆ - ๋ฒ„๋ธ” ์†ŒํŠธ

by dkswnkk 2021. 11. 6.
 

1377๋ฒˆ: ๋ฒ„๋ธ” ์†ŒํŠธ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 500,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— A[1]๋ถ€ํ„ฐ A[N]๊นŒ์ง€ ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. A์— ๋“ค์–ด์žˆ๋Š” ์ˆ˜๋Š” 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜ ๋˜๋Š” 0์ด๋‹ค.

www.acmicpc.net


 ๋ฐฐ์—ด์˜ ๊ฐ’์ด ๋ช‡ ๋ฒˆ ์ธ๋ฑ์Šค๋กœ ์ด๋™ํ–ˆ๋Š”์ง€ ๊ตฌํ•˜๋ฉด ๋ฒ„๋ธ” ์ •๋ ฌ ํšŸ์ˆ˜๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
 ์ •๋ ฌ ์ „๊ณผ ์ •๋ ฌ ํ›„์˜ ์ธ๋ฑ์Šค๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ขŒ์ธก์œผ๋กœ ์ด๋™ํ•œ ๊ฐ’ ์ค‘ ๊ทธ ์ฐจ๊ฐ€ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ์ถœ๋ ฅ ๊ฐ’์ด ๋œ๋‹ค.
  
 ์ •๋ ฌ ์ „
 [0    1    2    3    4 ]   // ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ
 10    1    5    2    3
  
 ์ •๋ ฌ ํ›„
 [1    3    4    2    0 ]
  1    2    3    5    10
 ์ธ๋ฑ์Šค์˜ ์ฐจ๋ฅผ ๊ตฌํ•˜์—ฌ ๊ทธ ๊ฐ’์ด ์–‘์ˆ˜์ด๋ฉด ์ขŒ์ธก์œผ๋กœ ์ด๋™ํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
 1    3    4    2    0
 0    1    2    3    4
--------------------------- (๋นผ๊ธฐ)
 1    2    2    -1   -4
 ์ธ๋ฑ์Šค์˜ ์ฐจ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’+1์ด ์›ํ•˜๋Š” ์ถœ๋ ฅ ๊ฐ’์ด๋‹ค.

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;


int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n,ans=-1; cin>>n;
    vector<pair<int,int>>v;

    for(int i=0; i<n; i++){
        int inp; cin>>inp;
        v.push_back({inp,i});
    }
    sort(v.begin(),v.end());
    for(int i=0; i<n; i++){
        if(v[i].second-i>=0) ans=max(ans,abs(v[i].second-i));
    }
    cout<<ans+1;
}

๋Œ“๊ธ€