"return이 있을때만 돌아가는걸로 이해한 저로써는 이해가 안가서요.."
여기서 이해를 잘못하고 계신 것 같습니다. return은 있으나 없으나 재귀함수의 동작에 아무런 영향을 주지 않습니다. 반환값이 없는 return은 그냥 아무 키워드 없이 함수를 종료하는 것과 100% 동일합니다.
14002번 - 가장 긴 증가하는 부분 수열 4
말씀하신 ' 반환값이 없는 return은 그냥 아무 키워드 없이 함수를 종료하는 것과 100% 동일합니다.'라고 하시면 실제로 원래 9번줄이 없어도 이전 재귀함수들로 계속 돌아가는다는 말씀이신거네요? 이해했습니다 감사합니다.
근데 왜 9번줄을 주석처리하면 무한루프가 도는거죠..
ans1가 -1이면 배열인덱스가 -1이 되어서 프로그램이 그대로 끝내야되는걸로 알고 있는데 string을 찎어보니까 계쏙 ans1가 -1,0으로 번갈아 바뀌면서 함수가 도네요.
아 네 자세한 설명 감사합니다. 설명하신대로 이해하니 이제 마음이 많이 편안해지네요.
추석에 코드 봐주느라고 고생 많으셨네요 ㅠ
남은 명절 잘 쉬세요! 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
chanp19933 1년 전
백준 강의 듣고 힌트를 얻어 문제를 풀어서 맞췄지만, 이해가 가지 않는 부분이 있어서 질문 드립니다.
테스트 케이스는 문제의 예시 입력으로 하고 있습니다
ex)
6
10 20 10 30 20 50
지금 궁금한게 7~12줄의 재귀함수인데요,
ans1의 매개변수로 3 - >1 -> 0 -> -1의 순서대로 들어갑니다.
그럼 9번줄의 return에 의해 -1인 상태에서 이전 재귀함수로 돌아가는거까지 이해가 되는데요, 왜 호출한 3,1,0 step으로도 돌아가죠?
-1에서 이전 함수로 돌아가면 사실 return이 없는거나 마찬가지잖아요? 근데 순서대로 계속 돌아가더라고요..
return이 있을때만 돌아가는걸로 이해한 저로써는 이해가 안가서요..
심지어 9번줄을 삭제하면 ans1의 매개변수가 -1,0을 왔다갔다 하는데, return이 없으면 그냥 마지막 함수에서 그냥 끝나야되지 않나요?
제가 잘못 이해를 하고 있나요...
고수님들 도와주세요 ㅠ