
😎풀이
employees를 순회하며 ID와 사원을 맵핑
- 깊이 우선 탐색을 활용하여
id에 해당하는 사원의 중요도 검사
2-1. 현재 사원의 중요도 누적
2-2. 직속 부하를 스택에 추가
id 사원과 직접 혹은 간접적으로 연결된 직원들의 중요도 합계 반환
function getImportance(employees: Employee[], id: number): number {
const employeeMap = new Map<number, Employee>()
for(const employee of employees) {
employeeMap.set(employee.id, employee)
}
let importance = 0
const stack: Employee[] = [employeeMap.get(id)]
while(stack.length) {
const curr: Employee = stack.pop()
importance += curr.importance
for(const childId of curr.subordinates) {
stack.push(employeeMap.get(childId))
}
}
return importance
};