qkrtkdals1997   7년 전

일단 언어는 자바를 쓰고 있습니다.

제가 이클립스에서 돌렸을 때는 잘 되는 걸로 보아서 알고리즘에 문제가 있는 것 같지는 않습니다.

어느 부분을 어떻게 고쳐야 시간초과를 해결할 수 있을까요?

pichulia   7년 전

  while(!st.isEmpty()){
   result=st.pop()+result;
  }

문제가 된 부분은 아마 이부분이라고 생각합니다.


java.util.Stack이 아니라 그냥 배열을 쓰는 것이 어떨까요?

qkrtkdals1997   7년 전

그런데 다른 분들의 글을 보니깐 스택을 이용해야 시간 초과를 해결할 수 있다고 하더라구요..그리고 배열보다는 덜 익숙한 스택을 연습해보고 싶기도 했고요
스택보다 배열을 쓰면 빠른가요?

qkrtkdals1997   7년 전

배열을 쓰면 오히려 인덱스 하나하나 불러와야되서 시간이 더 많이 걸리지 않나요?

pichulia   7년 전

인덱스 하나하나 불러온다는게 무슨 뜻이죠?


스택을 쓰지 말라고는 안했습니다.

java.util.Stack 을 쓰지 말라고 했죠...


아래는 "배열"로 "스택"을 구현한 모습입니다.

제가 지적했던

  while(!st.isEmpty()){
   result=st.pop()+result;
  }

이 부분에 대한 문제를 깔끔하게 해결할 수 있죠.


문자열의 concat(+) 연산자는 생각보다 오래걸립니다. 그렇기 때문에 생긴 TLE로 보여지네요.


qkrtkdals1997   7년 전

감사합니다! 덕분에 해결했습니다!  :)

배열로 스택을 구현하라는 말씀이 이런 거였군요. 

댓글을 작성하려면 로그인해야 합니다.