-,<,>가 아니면 모두 push해주고,

-일때 pop해주고,

<이면 다른 스택에 저장해서 나중에 붙이게 하고,

>이면 다른 스택에 있는 것을 원래 스택으로 넣었습니다!


물론 잘 되는데...

문제는 시간초과가 뜹니다... ㅠㅠㅠㅠㅠ

대체 어디가 문제고, 어떻게 해야 시간초과가 뜨지 않을까요?

for(j=0;j<=strlen(string);j++)

매 루프마다 strlen을 계산하게 됩니다. 다른 변수에 값을 넣어두시고 사용하는게 좋아요.

string이 문자열 object였다면 string.length() 같은 함수가 상수시간안에 수행되겠지만

strlen은 단순히 앞에서부터 NULL이 나올때까지 보면서 갯수를 세는 함수이기 때문에 수행시간이 문자열 길이에 비례합니다.

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