본문 바로가기
역량강화/코딩테스트

[스택/큐] 프로그래머스 - 네트워크(43162)

by 퐁시냥 2021. 11. 6.

프로그래머스 네트워크 문제 풀이 방법과 소스코드를 작성한다. 

문제는 쉬운 문제인데, BFS / DFS 사용법을 맨날 까먹어서 헷갈릴까봐 적어놓는다.

다른 분들은 DFS로 많이 풀었던데 BFS로 풀어도 상관없다. 

 

 

 

 

내일 배민테크코스 코테날이라 머리 풀겸해서 작성했다.

코테는 이전 기수에 7문제? 나왔다고 하고 난이도는 쉬운 편이라고 하는데 그래도 혹시 모르니..!

머리에 넣어놓기 ~~~~~ 까먹지말기~~~~~~

 

#include <string>
#include <vector>
#include <queue>

using namespace std;

bool visited[201] = {false, };

int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    queue<int> q;
    int cur = 0; 
    for(int i = 0; i < n; i++){
        q = queue<int>();
        
        if(!visited[i]){
            q.push(i);
            answer++;
            while(!q.empty()){
                cur = q.front();
                q.pop();
                visited[cur] = true;
                
                for(int j = 0; j < n; j++){
                    if(computers[cur][j] && (cur != j) && !visited[j]){
                       q.push(j);
                    }
                 }
            }       
        }
    }
    
    return answer;
}

 

 

코딩테스트 연습 - 네트워크

네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있

programmers.co.kr

댓글