이진 트리의 최대 깊이 구하기
- 문제 링크
문제 설명
- 이진 트리의 최대 깊이를 구하는 문제다.
해결 과정
- 처음엔 전역에 depth 변수를 선언하고 자식 노드가 있을 때마다 depth를 추가하는 재귀 함수를 작성했지만 잘 되지 않았다. 한 쪽 노드의 양쪽 자식 노드가 null일 때 다른 쪽을 판단하지 못하고 리턴되는 것이 문제였다.
- 그래서 끙끙 머리를 싸매다가 검색으로 해당 문제에 관한 글을 읽었다. 다루기 힘든 어려운 큰 문제를 다루기 쉬운 작은 문제로 나눠서 해결하는 재귀 방법을 소개하고 있었다. 바로 차용해봤다!
- 좀 더 끈기 있게 붙잡고 있었으면 풀 수 있었을까? 의문이 든 문제.
소스 코드
var maxDepth = function (root) {
if (!root) {
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
};
참고 자료 및 출처
'프로그래밍-학습기록 > 코딩테스트' 카테고리의 다른 글
바닐라코딩 프렙 지원부터 부트캠프 어드미션 테스트까지 후기 (0) | 2021.06.07 |
---|---|
프로그래머스 | 로또의 최고순위와 최저순위 | 자바스크립트 (0) | 2021.05.07 |
치욕스런 날코딩, 정규표현식 배워야겠다는 다짐 (0) | 2021.03.01 |
레벨 1 문제에서 찾은 작은 교훈 (0) | 2021.03.01 |
프로그래머스 | level 1 | python | 3진법 뒤집기 (0) | 2021.03.01 |