jh1125kr   8년 전

런타임에러오류가 뜨는데, 어디서 나는지 고민하다 질문드립니다 ㅠㅠ

계산을 쉽게 해주기 위해서 0번째 index값은 처음부터 0, (0,0)으로 할당 해주었고

계단수 n값을 입력받아서 1번째 index값부터 2,(index,점수)로 할당 해주었습니다.

여기서 첫번째 2의 뜻은 두칸 뛰어서 내려왔다는 뜻으로 초기화를 2로 해주었고

마지막 계단부터 스택에 집어 넣고 팝하면서

두칸 뛰어내려온 것이면 첫번째 인자에 2를 넣고, 한칸 뛰어내려온 것이면 1를 넣고

값을 누적하면서 다시 스택에 넣어줬습니다.

이런 식으로 모든 경우의 수를 다 따져서 스택이 empty될때까지 while문을 돌렸습니다.

몇가지 테스트케이스를 해보았는데 대충 맞는것같은데 어디서 런타임 에러가 나는지 모르겠습니다 ㅠㅠ

baekjoon   8년 전

아마 s의 크기가 너무 커져서 그런 것이 아닐까 생각됩니다.

계단의 수가 최대 300개 이기 때문에, 저렇게 코드를 작성하면 큐에 최대 2^300 개 정도가 들어갈 수 있는데, 이 수는 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376 라서 저장하기 위해 1852673427797059126777135760139006525652319754650249024631321344126610074238976 TB 정도의 메모리가 필요합니다.

다른 방법을 사용하는 것이 좋습니다.

jh1125kr   8년 전

아 감사합니다 ㅠㅠ 다른 dp방식으로 풀었습니다!!

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