filot   7년 전

지금 재귀로 풀어볼려고 하는데 ... 오른쪽 -> 왼쪽으로 오는 케이스 때문에 잘 안되네요.

그 부분 때문에 stackoverflow가 나는 상황인데... 재귀로는 안되는건지 ..

wowoto9772   7년 전

저는 재귀에 메모이제이션을 추가해서 해결했어요.


일단 한가지 걱정되는 부분은,


왼쪽으로 갔다가 오른쪽으로 갔다가

다시 왼쪽으로 갔다가 오른쪽으로 갔다가 뭐 이런식으로 들어 가면, 스택 오버 플로우가 날거 같아요.


아예 방향을 지정해서 들어가는건 어떨까요.

filot   7년 전

아예 방향을 지정해서 들어간다는게 무슨 의미일까요? 지금 생각해보니 오른쪽으로 갔다가 왼쪽으로 서로 반복을 하니 스택오버 플로우가 나긴할텐데 ..

이걸 어떻게 해결을 해야할지 감이 안오네요.

혹시 조금더 힌트를 주실 수 없나요?

wowoto9772   7년 전

처음 부터 다음 방향을 정해두는거에요.


예를들면


filot님 코드에서는 맨 밑에서부터 위로 가는 거 잖아요.


(i,j)위치에 있다고 가정할때, 위로 올라갔을때, 


거기서 방향은 왼쪽으로만 가게하거나 오른쪽으로만 가게하는 거죠.

filot   7년 전

힌트 감사합니다.

wowoto9772님의 코드를 참고해서 수정을 했는데

자바로 메모이제이션을 하면 시간초과가 나올 수 밖에 없는건지 모르겠네요 ㅠㅠ

언어적 특성인지....

indioindio   7년 전

1000 * 1000이면 scanner로 인한 손해도 꽤 될 것 같아요

bufferedstreamreader(??) 였나를 사용해보세요요

indioindio   7년 전

실험해보니 BufferedReader를 사용하면 100만개의 수를 입력받는데 0.8초 정도,

scanner로는 2.5초 정도 걸리네요

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