군대근황 부터 얘기하자면 요즘 코로나가 너무 심해져서 휴가를 나가느냐 마느냐의 스트레스가 계속 오고있다. 휴..진짜 빨리 제대를 해야하는데 100일이 깨진 순간부터 고비의 고비다 ㅠㅠ
최대한 많은 문제를 풀고싶은데도 의욕이 크게 안나는거보면 조금씩 초반에 불타올랐던게 약간씩 약해지는거같지만 이미 예상은 했던 결과였고 천천히 길게 볼 생각이다.
오늘의 문제는 각 column 에서 떨어지는 공들이 어느 방향으로 나올지를 예상하고 벡터에다가 리턴하면 되는 문제이다. Simulation 타입의 문제이고 dfs 를 섞은 미디엄 문제이다. 처음에는 맞춘 사람 비율이 더 많길래 쉬운 문제인가 하고 문제를 읽어봤는데 솔직히 내가 풀던 유형이 문제가 아닌 이렇게 꼬불꼬불한 길에서 쓰는 dfs 라니 멘붕이 먼저왔다.
그런데 문제를 계속 읽어보니깐 결국 내가 체크해야할것은 양쪽 궤적이 동일해야 공이 흘러간다는 사실이였고 성공적으로 공이 나왔을경우에는 어느 column 인지 int 로만 리턴해주면 되는문제였다.
나의 너무나도 어지러운 코드...문제를 풀었어도 풀었던 기분이 아니였다. 내가 실수했던거는 dfs 를 적는과정에서 너무 void dfs 를 많이써서 그런지 dfs 에 return 을 안적었어서 내가 원하는 답이 안나오고 이상한 답이 나왔다. return 이 진행됐을때 나오는 루트를 생각못한것. 거기다가 col +1 이나 col -1 이 현재 궤적과 동일한지를 체크하는 과정에서도 overflow 가 나왔는데 조건부를 안적었어서 좀 애를 먹었다.
내가 쓴 코드는 아니지만 가장 많은 투표를 받은코드고 솔직히 내꺼보다 훨씬 더 깔끔해서 남겨본다. dfs 를 할때 bool 조건을 써서 적을수있으면 훨씬 깔끔하다는것...dfs 가 돌아오는과정에서 return 값을 잘 정해야한다는것 등등을 느낀거같다.
배운점:
1. dfs는 void 만 있는것이 아니다..
2. bool 조건부 함수를 쓰는것도 방법이다.