😎풀이

  1. employees를 순회하며 ID와 사원을 맵핑
  2. 깊이 우선 탐색을 활용하여 id에 해당하는 사원의 중요도 검사
    2-1. 현재 사원의 중요도 누적
    2-2. 직속 부하를 스택에 추가
  3. 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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글