Skip to content

Jsy8869/feature/coding test/5 3#55

Merged
JSY8869 merged 2 commits intoJSY8869/Developefrom
JSY8869/Feature/CodingTest/5-3
Dec 31, 2020
Merged

Jsy8869/feature/coding test/5 3#55
JSY8869 merged 2 commits intoJSY8869/Developefrom
JSY8869/Feature/CodingTest/5-3

Conversation

@JSY8869
Copy link
Collaborator

@JSY8869 JSY8869 commented Dec 29, 2020

5-3 재귀함수 없이 구현 중단

재귀함수 없이 구현하기 위해 이것저것 찾아보면서 배운 것은 많지만 더 이상의 코딩이 의미가 없다고 느껴져서 중단하도록 하겠습니다!

질문

  • 처음에 재귀함수 없이 구현하려 했던 이유가 stack overflow 오류에 대한 생각 때문인데 tail_recursion에 대해 알게 되었습니다. java의 경우 이 기능이 없다고 하는데 혹시 java에서 다른 비슷한 방법이 있을까요?
  • stack을 이용해서 구현하면 된다고 생각은 했는데 이 문제를 푼 사람은 많지만 stack을 사용한 사람은 하나도 없었는데 어떠한 점 때문에 사람들이 stack을 이용하지 않았을 지 모르겠습니다. 그저 재귀함수가 더 쉽기 때문인지 아니면 제가 모르는 다른 문제가 있는 것인지 의견 부탁드립니다!

음료수 얼려먹기 DFS없이 구현 완료
미완성 이지만 더 이상의 의미가 없어 중단합니다.
@JSY8869 JSY8869 added Pull Request Pull Request Question I have Question Review Code Review labels Dec 29, 2020
@JSY8869 JSY8869 added this to the Coding Test milestone Dec 29, 2020
@JSY8869 JSY8869 requested a review from jongfeel December 29, 2020 12:58
@jongfeel
Copy link
Collaborator

저도 검색해 보면서 알아낸 건데 Java의 경우는 tail recursion에 대해 최적화를 하지 않는다는 내용이 있더군요.
정확하게 얘기하면 tail recursion을 구현할 수는 있지만 JVM이 최적화를 해주지 않는다가 맞는 얘기겠네요.
그리고 recursive function을 안쓰고도 구현이 가능하다는 걸 해보셔서 아시겠지만 꼭 필요한 방법인가에 대해 생각해 보는게 더 좋습니다. 저는 개인적으로 가볍게 쓰기에는 상관 없지만, 굳이 구현하려고 하지 않는다 정도입니다.

제 생각에는 이미 풀이가 stack을 사용하지 않은 코드가 제시가 됐기 때문에 사람들이 그 틀에서 더 이상 생각하지 않고 그게 답이고 맞다고 생각해서 stack을 쓴 사람이 없지 않나 싶네요.
stack을 쓰던 재귀함수를 쓰던 그건 방법의 차이라고 보여집니다. 즉 DFS 알고리즘 자체는 다르지 않은데 stack에 넣고 빼면서 체크하느냐 아니면 재귀함수의 파라미터 값을 조절해 가면서 순서대로 처리해 보느냐의 차이 정도인거 같아요. 다른 문제는 없어 보입니다.

코드리뷰가 아닌 일반적인 질문의 경우는 issue로 해도 충분하지 않을까 싶네요.

@JSY8869 JSY8869 merged commit f8a00a1 into JSY8869/Develope Dec 31, 2020
@JSY8869
Copy link
Collaborator Author

JSY8869 commented Dec 31, 2020

좋은 의견 감사합니다!!

@JSY8869 JSY8869 deleted the JSY8869/Feature/CodingTest/5-3 branch December 31, 2020 13:06
@jongfeel jongfeel mentioned this pull request Jan 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Pull Request Pull Request Question I have Question Review Code Review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants