오늘 배운 것
- 백트래킹 (포스팅✏️)
- 클린코드js-배열다루기
어려웠던 내용
- 여행경로 문제 중 stack과 queue를 문제에 적용하여 사용하면 조금 더 쉽게 접근할 수 있었을텐데, 일반적인 배열과 객체형식으로만 접근하려고 한 부분
- N-Queen 문제 해설 중, 2차원의 체스판(board)를 1차원으로 옮겨
board[row] = col
과 같은 방식으로 처리하는 것
궁금한 내용 / 부족한내용 🤔
- 백트래킹의 핵심은 결국 가지치기 이구나!
느낀점
- N-Queen 한 문제를 이해하고, 내가 생각한 로직으로 풀어내는 데 4시간을 사용했다. (
2차원배열사용
) 심지어 중간 로직은 모순이 발견되어, 임시적으로 땜빵(?)처리를 하며 구현해냈다. 결국 통과하기는 했지만, 내 코드에 당당할 수 없었고, 해답을 찾아보니 체스판을 2차원이 아닌 1차원으로board[row] = col
방식으로 손쉽게 풀 수 있던 문제였다. ’참 허무하기도하고, 나는 저 방식을 떠올릴 수 없었을거야, 내가 한 방법도 충분히 잘했어' 라고 생각하는 동시에 ‘이 생각이 참 위험하구나' 라는 생각도 들었다. 내 부족함을 내가 투자한 시간으로 합리화하고 있다고 생각했다. 돌이켜 생각해보면, 처음 모순이 된 로직이 발견되었을 때,땜빵으로 어떻게든 특정 상황을 처리하는 것
이 아니라더 나은 올바른 방법을 찾는 것
에 시간을 투자했어야 했다. 그 동안의 나의 태도를 조금이나마 돌아보게 되었고, 오늘 투자한 4시간이 훨씬 더 값진 개발자로 성장하는데 유용한 시간이 되도록 되새겨야겠다.