Closed deepredk closed 3 years ago
아무리 생각해도 그런 방법 없는 것 같음. DFS 한 술에 배부르려면 한 함수에서 여러가지(조회+명령) 짬뽕으로 할 수 밖에 없는 듯
근데 실무에서도 이런 상황이 드물진 않을 것 같은데 어떻게 타협들 보실까 싶네
저도 @deepredk 말에 동의합니다.
함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야한다
라고 말하고 있지만 알고리즘 문제를 푸는 경우는 효율성이 매우 중요하기 때문에 조회+명령
으로 구현할 수 밖에 없을 것 같아요
@deepredk , @sukyeongh 두 분의 말에 동의합니다. 특히 DFS를 재귀로 사용하는 경우, return과 함께 로직을 풀어나가야 하기 때문에 조회와 명령이 함께 진행될 수밖에 없는 경우가 많다고 생각합니다.
하지만 이들을 객체로 묶는다면, 해당 객체 외부에서 부르는 명령문과 조회문을 따로 분리시켜 외부에서는 헷갈리지 않도록 정리하는 방법이 있겠네요.
조회 + 명령
을 써야하는 코드가 있다면 외부적으로 분리하는 방법이 혼란을 잠재울 수는 있지만 내부적으로는 해결할 수 없는 경우도 있을 것이다.
진홍
승빈
수경
위처럼 우리는 명령과 조회가 뒤섞여있는 코드를 꽤 사용해왔어.
근데 이렇게 할 수 밖에 없던게, 저 코드에서 명령과 조회를 분리하려면 DFS를 2배로 해야되니까 못 했던거고.
이럴때 효율성을 떨어뜨리지 않으면서 명령과 조회를 분리하는 방법이 없을까?