๋ฐฐ์ด์ ๊ฐ์ด ๋ช ๋ฒ ์ธ๋ฑ์ค๋ก ์ด๋ํ๋์ง ๊ตฌํ๋ฉด ๋ฒ๋ธ ์ ๋ ฌ ํ์๋ฅผ ์์๋ผ ์ ์๋ค.
์ ๋ ฌ ์ ๊ณผ ์ ๋ ฌ ํ์ ์ธ๋ฑ์ค๋ฅผ ๋น๊ตํ์ฌ ์ข์ธก์ผ๋ก ์ด๋ํ ๊ฐ ์ค ๊ทธ ์ฐจ๊ฐ ๊ฐ์ฅ ํฐ ๊ฐ์ด ์ถ๋ ฅ ๊ฐ์ด ๋๋ค.
์ ๋ ฌ ์
[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;
}
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 1406๋ฒ - ์๋ํฐ (0) | 2021.11.06 |
---|---|
[๋ฐฑ์ค,c++] 13913๋ฒ - ์จ๋ฐ๊ผญ์ง4 (0) | 2021.11.06 |
[๋ฐฑ์ค,c++] 1389๋ฒ - ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น (0) | 2021.11.06 |
[๋ฐฑ์ค,c++] 1371๋ฒ - ๊ฐ์ฅ ๋ง์ ๊ธ์ (0) | 2021.11.05 |
[๋ฐฑ์ค,c++] 11497๋ฒ - ํต๋๋ฌด ๊ฑด๋๋ฐ๊ธฐ (0) | 2021.11.05 |
[๋ฐฑ์ค,c++] 1357๋ฒ - ๋ค์งํ ๋ง์ (0) | 2021.11.04 |
๋๊ธ