프로그래머스(C++) - 네트워크

2025. 9. 13. 17:26·C++ 프로그래머스/BFS , DFS

●문제

 

●입출력

 

문제이해 : 문제를 이해하는데 꽤나걸렸다 이차원 배열 computer의 숫자가 의미하는건

[[1, 1, 0], [1, 1, 0] ,[0, 0, 1]]이 의미하는건 

//1번 컴퓨터는 자기자신, 2번연결 o / 3번연결 x [1, 1, 0]
//2번 컴퓨터는 자기자신, 1번연결 o / 3번연결 x [1, 1, 0]
//3번 컴퓨터는 자기자신, 1번연결 x / 2번연결 x [0, 0, 1] 을 의미한다

 

네트워크의 갯수는 독립적으로 [1,2] 는 네트워크 연결되었음으로 한개

[3] 은 서로 연결안되어있음으로 독립적으로 한개 이렇게 총 두개이다

 

문제풀이 : dfs로 서로 연결되어있거나 방문하지않았을때 dfs 재귀호출을 하였다

#include <string>
#include <vector>
#include <iostream>
using namespace std;

//만약 dfs로 연결되어있다면
//컴퓨터의 갯수 n / 2차원배열 computers / 네트워크 갯수 return

//1번 컴퓨터는 자기자신, 2번연결 o / 3번연결 x [1, 1, 0]
//2번 컴퓨터는 자기자신, 1번연결 o / 3번연결 x [1, 1, 0]
//3번 컴퓨터는 자기자신, 1번연결 x / 2번연결 x [0, 0, 1]
//network갯수는 [1,2] 서로연결 -> answer +1 / [3] 독립적 -> answer +1 답은 2
int answer = 0;
void DFS(int index, vector<vector<int>>& computers, vector<bool> &visited)
{
    visited[index] = true;
    for (int i = 0; i < computers.size(); i++)
    {
        //만약 연결되어있거나 방문하지않았으면 
        if (computers[index][i] == 1 && !visited[i])
        {
            //재귀호출
            DFS(i, computers, visited);
        }
    }
}
int solution(int n, vector<vector<int>> computers) 
{
    vector<bool>visited(n, false);
    for (int i = 0; i < n; i++)
    {
        //방문안했으면 체크
        if (!visited[i])
        {
            DFS(i, computers, visited);
            answer++;
        }
    }
    return answer;
}
int main(void)
{
    int n = 3;
    vector<vector<int>> computers = { {1, 1, 0}, {1, 1, 0}, {0, 0, 1} };
    int result = solution(n, computers);
    cout << result;
}

 

레벨 : 3

점수 : 1

 

-----

dfs 어렵네요.. 공부부족이 많이 느껴집니다

'C++ 프로그래머스 > BFS , DFS' 카테고리의 다른 글

프로그래머스(C++) - 여행경로  (0) 2025.10.05
프로그래머스(C++) - 단어 변환  (0) 2025.09.23
프로그래머스(C++) - 게임 맵 최단거리  (0) 2025.09.14
프로그래머스(C++) - 타겟 넘버  (0) 2025.09.13
Algorithm - BFS, DFS  (0) 2025.09.12
'C++ 프로그래머스/BFS , DFS' 카테고리의 다른 글
  • 프로그래머스(C++) - 단어 변환
  • 프로그래머스(C++) - 게임 맵 최단거리
  • 프로그래머스(C++) - 타겟 넘버
  • Algorithm - BFS, DFS
lucodev
lucodev
언리얼 포폴개발 일기
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (218) N
      • Unreal 프로젝트 다이어리 (115) N
        • 첫번째 프로젝트 (73)
        • 두번째 프로젝트 (42) N
      • Unreal 팁 (8)
      • Unreal 디버깅 (8)
      • C++ 프로그래머스 (52)
        • Stack,Queue (7)
        • Hash (4)
        • Heap (2)
        • Sort (5)
        • Exhaustive search (5)
        • Greedy (2)
        • BFS , DFS (7)
        • Graph (2)
        • Dynamic Programming (1)
        • C++ Math (2)
        • 기타 문제 (14)
      • C++ 백준 (4)
      • C++ 팁 (1)
      • 개인 코테 & 스타디 <비공개> (29)
        • 코드 개인보관함 (9)
        • 코딩테스트+@ (11)
        • 알고리즘 스타디 (6)
        • 알고리즘 스타디 과제 (3)
        • 비공개 (0)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 태그

    언리얼
    언리얼 퀘스트시스템
    unreal npc
    언리얼 비헤이비어트리
    언리얼 파쿠르
    unreal
    언리얼 npc
    언리얼 ui
    언리얼 컷씬
    언리얼 인벤토리
    언리얼 상호작용
    unreal 시퀀스
    언리얼 시퀀스
    unreal 파쿠르
    언리얼 parkour
    unreal 인벤토리
    언리얼 프로그래스바
    언리얼 behavior tree
    언리얼 behaviortree
    unreal inventory
  • hELLO· Designed By정상우.v4.10.3
lucodev
프로그래머스(C++) - 네트워크
상단으로

티스토리툴바