You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
constfs=require('fs')constfilePath=process.platform==='linux' ? '/dev/stdin' : `${__dirname}/input.txt`constinput=fs.readFileSync(filePath).toString().split('\n')// 입력값 처리constn=Number(input[0])// 정점(컴퓨터)의 개수constm=Number(input[1])// 간선(연결)의 개수letgraph=[]// 그래프 초기화for(leti=1;i<=n;i++){graph[i]=[]}for(leti=2;i<=m+1;i++){let[x,y]=input[i].split(' ').map(Number)graph[x].push(y)graph[y].push(x)}letcnt=0constvisited=newArray(n+1).fill(false)// DFS 구현functiondfs(v){visited[v]=true// 방문처리cnt++for(letiofgraph[v]){if(!visited[i]){dfs(i)}}}// 1번 컴퓨터부터 시작dfs(1)// 1번 컴퓨터를 제외한 감염된 컴퓨터 수 출력console.log(cnt-1)
시간 복잡도
O(V + E): V는 정점의 개수, E는 간선의 개수
DFS는 모든 정점과 간선을 한 번씩 방문하므로 O(V + E)의 시간 복잡도를 가짐
The text was updated successfully, but these errors were encountered:
바이러스
네트워크를 통해 전파되는 바이러스의 전파 범위를 계산하는 문제
📝 제약조건
💡 예시
4
문제 해결 과정
Step 1: 문제 이해하기
Step 2: 접근 방법
Step 3: 코드 설계
Step 4: 코드 구현
시간 복잡도
The text was updated successfully, but these errors were encountered: