백준 1377 버블 소트

치즈·2022년 11월 27일

BOJ

목록 보기
18/45
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;


vector<pair<int,int>> A;
vector<int> diff;
int N;
// bubblesort 시 몇 번째에서 끝나는지 출력
// 몇 번 인덱스로 옮겨 갔는가. 
// 인덱스 변화 차이가 가장 큰 값이 출력 값. 
// 인덱스 차 + 1이 가장 큰 값 찾기

void input(){
  cin >> N;
  A.resize(N);
  diff.resize(N, 0);
  for(int i = 0; i < N; i++){
    cin >> A[i].first;
    A[i].second = i;
  }
}


void solve(){
  sort(A.begin(), A.end());
  for(int i = 0; i < N; i++){
    diff[i] = A[i].second - i;
  }
 
  cout << *max_element(diff.begin(), diff.end()) + 1;
}

int main() {
  ios_base::sync_with_stdio(false);        
  cin.tie(0);
  cout.tie(0);
  input();
  solve();
  return 0;

}

profile
차근차근 배워나가요

0개의 댓글