joekim94   3년 전

짜기 편하게 3개의 벡터를 지정했습니다. v는 계단의 점수가 기록된 벡터, score는 지금까지의 점수를 계산하는 벡터, cont는 boolean 값이 들어가면서 이전의 것과 현재것이 선택 되었음을 나타내 주는 벡터입니다. 예를 들어 cont[5] == true 라는 것은 4,5를 현재 밟고 올라왔기 때문에 6을 선택하지 말라는 것을 표시해줍니다. 

제 논리는 1, 2번 계단까지는 무조건 밟는게 가장 큰 수를 찾는 방법이기에 초기화를 하고, 

3번 부터는 loop를 돌립니다. 그런데 3번 계단에서는 예외처리를 해줘야하는데 그 이유는 처음 계단이 0이기 때문에 직접 2를 밟고 3으로 갈 수 있기 때문에 이 경우만 따로 빼줬습니다. 

그 이후에는 이전 계단의 cont값이 true이면 i-2번째 계단, cont 값이 false이면 i-1, i-2 중 큰 수를 선택하게 하였습니다. 

test case 몇개를 집어넣었을 때 맞는 결과가 나오는 것 같은데, 어디에 구멍이 있을까요?

읽어주셔서 감사합니다. 

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