dev_eun
[프로그래머스] 모두 0으로 만들기 본문
코딩테스트 연습 - 모두 0으로 만들기
각 점에 가중치가 부여된 트리가 주어집니다. 당신은 다음 연산을 통하여, 이 트리의 모든 점들의 가중치를 0으로 만들고자 합니다. 임의의 연결된 두 점을 골라서 한쪽은 1 증가시키고, 다른 한
programmers.co.kr
트리이기 때문에 어떠한 노드를 골라도 루트노드가 될 수 있다.
리프 노드부터 시작해서 bottom-up으로 루트까지 올라가면 되겠다고 생각했었다. 그러려면 부모 노드가 누구인지 알아야 하는데, 그렇게 할 필요가 없었다.
자식 노드의 순서가 중요하지 않기 때문에 자식 노드의 수만 세고 있으면 되었던 것.
그래서 리프 노드부터 시작해서 자신과 각 부모 노드의 weight를 수정하는 방식으로 진행했다.
루트(0번 노드)에서 시작하는 dfs, bfs로 시도해봤지만 나는 모두 실패...
다른 사람들의 풀이에는 dfs로 푼 것도 꽤 있는 것 같다.
c++
eun-seong/Documents
정리. Contribute to eun-seong/Documents development by creating an account on GitHub.
github.com
js
스택으로 dfs할 때 루트 노드부터 task를 수행하는 것이 아니라 리프 노드부터 수행
eun-seong/Documents
정리. Contribute to eun-seong/Documents development by creating an account on GitHub.
github.com
728x90
'공부 > 알고리즘 문제' 카테고리의 다른 글
DFS 스택으로 구현, 루트 노드부터, 리프 노드부터 (0) | 2021.05.03 |
---|---|
맨날 잊어버려서 적어 놓는 코테 Tips (0) | 2021.05.03 |
[프로그래머스] 괄호 회전하기 c++, javascript (0) | 2021.05.02 |
[프로그래머스] 기능개발 c++, javascript (0) | 2021.04.29 |
[프로그래머스] 순위 (0) | 2020.12.11 |