작성
·
70
0
http://boj.kr/4b3abb45ebbc439d9e4c7f566089586e
오큰수를 찾는 과정을
처음부터 쭉 찾아나가다가 왼쪽에 나보다 작은수가 있다면 스택에 넣는다.
나보다 큰수가 나온다면 스택에 저장된 크기만큼 해당 숫자를 출력한다.
만약 나보다 큰수가 한번도 안나온다면 -1을 출력한다.
의 과정으로 진행하였습니다.
예시답안도 정상적으로 나왔는데 왜 틀린건지 어떤 논리적 오류가 발생했는지 궁금합니다
답변 2
0
0
안녕하세요 ㅎㅎ 현우님 시간복잡도상 너무 큰 로직입니다.
for(int i=0;i<N;i++){
stack<int> s;
bool b=false;
s.push(vec[i]);
for(int j=i+1;j<N;j++){
지금 보시면 N^2의 알고리즘인데 이 문제의 N의 최대범위는 10만입니다. 즉, 10만 * 10만을 하게 되면 100억이 되게 됩니다.
조금 더 효율적으로 구축하시면 됩니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.