기록하지 않았다면 잃어버릴 시간들
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
블로그 내 검색

기록하지 않았다면 잃어버릴 시간들

새로운 것을 배우는게 즐거운 개발자입니다.

  • 알고리즘/프로그래머스

    Programers 네트워크

    2022. 3. 12.

    by. 내이름은 킹햄찌

    https://programmers.co.kr/learn/courses/30/lessons/43162

     

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

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

    programmers.co.kr

    #include <string>
    #include <vector>
    #include <queue>
    using namespace std;
    vector<int> adj[201];
    bool visited[2001];
    int sol;
    
    void bfs(int cur){
        if(visited[cur]) return;
        visited[cur] = true;
        
        queue<int> q;
        q.push(cur);
        
        while(!q.empty()){
            int current = q.front();
            q.pop();
            for(int i =0; i<adj[current].size();i++){
                int next = adj[current][i];
                if(visited[next]) continue;
                q.push(next);
                visited[next] = true;
            }
            if (q.size() == 0) sol++;
        }
    }
    
    int solution(int n, vector<vector<int>> computers) {
        int answer = 0;
        fill(visited,visited+n,false);
        for(int i=0;i<n;i++){
            for(int j =0;j<n;j++){
                if(i == j) continue;
                if(computers[i][j])
                    adj[i].push_back(j);
            }
        }
        for(int i =0;i<n;i++)
            bfs(i);
        answer = sol;
        return answer;
    }

    아이디어

    노선을 원하는 포멧으로 파싱하여 BFS 사용

    BFS보다는 DFS를 사용하는 것이 더 적합한 문제이지만 계속 DFS만 쓰니 지루해서 BFS 사용

     

    '알고리즘 > 프로그래머스' 카테고리의 다른 글

    Programers N으로 표현  (0) 2022.03.12
    Programers 단어 변환  (0) 2022.03.12
    Programers 타켓넘버  (0) 2022.03.12
    Programers H-Index  (0) 2022.03.12
    Programers 가장 큰 수  (0) 2022.03.12

    댓글

    관련글

    • Programers N으로 표현 2022.03.12
    • Programers 단어 변환 2022.03.12
    • Programers 타켓넘버 2022.03.12
    • Programers H-Index 2022.03.12
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
내이름은 킹햄찌

티스토리툴바