BOJ 14267. 회사문화 1
1. 문제설명
- 직원과 그 위의 상사가 있다.
- 상사 한명이 칭찬하면 연결된 그 밑에 직원은 전부 칭찬 받는다.
- 각 직원의 칭찬 횟수를 구하라
-
단 사장은 칭찬하는 사람이 없다.
- 문제 분류
- DP, Graph, Tree, DFS, DP in Tree
2. 알고리즘 설계
- 계급도 == 트리
- 각 직원의 상사를 저장하고, 직원과 상사의 인접행렬을 표기한다.
- 칭찬 받은 직원의 수를 카운팅 배열에 저장한다.
- 참고로 한 명이 여러번 칭찬 받을 수 있으니,
=
이 아닌+=
으로 해야한다. - 이거 때문에 맞왜틀 시전….
- 참고로 한 명이 여러번 칭찬 받을 수 있으니,
- 이후 자신의 상사가
-1
(사장)이 아니면 칭찬 횟수를 더해주고, - 연결된 다른 상사를 갱신하는 DFS를 수행한다.
3. 전체 코드
4. 팁
- 이전부터 쓰던
100'005
표기법이 있다. - 우리 나라만 그런지 모르겠지만, 보통 3자리씩 컴마(,)로 숫자를 적는다.
- C++에서는
'
표기를 이용한 숫자 표기를 지원한다.- 낮은 버전에서는 동작하지 않으니, 주의하자