작성
·
130
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
자바로 작성하니까 시간초과가 나는데, 상관없는 건가요??
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] argvs) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int[] num = new int[n+1];
for(int i=1; i<=n; i++) {
num[i] = sc.nextInt();
}
Stack<Integer> st = new Stack<>();
int[] answer = new int[n+1];
for(int i=n; i>=1; i--) { //제일 뒤에서 부터 스택에 넣는다.(스택에 넣는 것은 [[인덱스 번호]]를 넣는다)
while(!st.isEmpty() && num[i]>num[st.peek()]) { //num배열에서 인덱스 번호에 해당하는 것을 본다. 현재 배열의 값이 스택의 top부분보다 크면 pop한다. 다시말해 스택 안은 오름차순 정렬된다.
answer[st.peek()] = i; //정답 배열에 인덱스 값 넣기, st.peek도 인덱스, i도 인덱스 번호
st.pop();
}
st.push(i); //스택에 삽입
}
for(int i=1; i<=n; i++) { //답 출력
System.out.print(answer[i]+" ");
}
}
}
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
님의 질문과 관련된 정보가 제공된 자료에는 없어 직접적인 답변을 드리기 어렵습니다. 다만, 제공된 내용과 관련하여 몇 가지 일반적인 조언을 드릴 수 있겠습니다.
자바로 작성한 코드에서 시간 초과가 발생하는 경우, 몇 가지 가능한 원인이 있을 수 있습니다:
이외에도 문제의 제한 사항을 다시 한 번 확인하고, 다양한 테스트 케이스를 통해 코드를 검증해 보는 것이 좋습니다. 또한, 온라인 코딩 플랫폼의 토론 탭이나 다른 사용자의 솔루션을 참고하여 비슷한 문제를 해결한 방법을 학습할 수도 있습니다.
원하는 답변을 찾지 못하셨다면, 구체적인 문제 상황과 함께 인프런 질문하기를 통해 문의해 보시는 것도 좋습니다.
학습에 도움이 되기를 바랍니다.