인프런 커뮤니티 질문&답변

조현성님의 프로필 이미지
조현성

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-T

2-T 진짜 무식하게 풀기 테케는 통과되는데 ㅎㅎ

작성

·

475

0

#include<iostream>
using namespace std;
int n, a[1000004], b[1000004];
int main(){
  cin >> n;
  for(int i=0;i<n;i++){
    cin>>a[i];
  }
  for(int i=0;i<n-1;i++){
    if(a[i]<a[i+1]){
      b[i]=a[i+1];
    }else if(a[i]>a[i+1]){
      int k=i, temp=i;
      for(int j=i;j<n-1;j++){
        if(a[j]<a[j+1])break;
        k++;
      }
      for(int j=temp;j<=k;j++){
        b[j]=a[k+1];
      }
      int flag=1;
      for(int j=i;j<n-1;j++){
        if(a[i]<a[j+1]){
          flag=0;
          break;
        }
      }
      if(flag)b[i]=-1;
    }
  }
  b[n-1]=-1;
  for(int i=0;i<n;i++){
    cout << b[i] << " ";
  }
}

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 현성님 ㅎㅎ

근데 현성님 코드는 시간복잡도가 O(n^2)라서 통과가 안되는 거 같은데요.

시간복잡도도 고려해주셔야해요. ㅎㅎ

 

감사합니다.

조현성님의 프로필 이미지
조현성

작성한 질문수

질문하기