[프로그래머스] 가장 먼 노드 (C++)

2021. 2. 18. 21:57·코딩 테스트
728x90

🔮문제

1번 노드로부터 가장 먼 노드 개수 return

 

n : 노드 수
edge : 간선정보

 

🔮풀이

bfs를 사용하여 1번 노드 ~ n번 노드와의 거리 dist 배열에 저장

 

🔮STL - sort
default = 오름차순 정렬

 

  • sort(arr, arr+n);

  • sort(v.begin(), v.end());

  • sort(v.begin(), v.end(), compare);                //사용자 정의함수

  • sort(v.begin(), v.end(), greater<자료형>());    //내림차순

  • sort(v.begin(), v.end(), less<자료형>());        //오름차순  


🔮코드

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#include <queue>

using namespace std;

vector<vector<int>> arr(20001);
int visit[20001]={0};

int solution(int n, vector<vector<int>> edge) {
    int answer = 0;
    queue<int> q;
    vector<int> dist(n+1, 0);

    for(int i=0; i<edge.size(); i++){
        int from = edge[i][0];
        int to = edge[i][1];
        arr[from].push_back(to);
        arr[to].push_back(from);
    }

    for(int i=1; i<=n; i++)
        sort(arr[i].begin(), arr[i].end());

    visit[1]=1;
    dist[1]=0;
    q.push(1);

    while(!q.empty()){
        int v=q.front();
        q.pop();

        for(int i=0; i<arr[v].size(); i++){
            int cur = arr[v][i];
            if(!visit[cur]){
                q.push(cur);
                visit[cur]=1;
                dist[cur]=dist[v]+1;
            }
        }
    }
    sort(dist.begin(), dist.end(), greater<int>());

    int _max = dist[0];

    for(auto x : dist){
        if(x == _max)
            answer += 1;
    }

    return answer;
}

 

 

728x90

'코딩 테스트' 카테고리의 다른 글

[Codility] Lesson3. FrogJmp (C++)  (0) 2021.02.23
[Codility] Lesson1. BinaryGap (C++)  (0) 2021.02.23
[Codility] Lesson2. CyclicRotation (C++)  (0) 2021.02.22
[Codility] Lesson2. OddOccurrencesInArray (C++)  (0) 2021.02.22
[프로그래머스] 단어 변환 (C++)  (0) 2021.02.18
'코딩 테스트' 카테고리의 다른 글
  • [Codility] Lesson1. BinaryGap (C++)
  • [Codility] Lesson2. CyclicRotation (C++)
  • [Codility] Lesson2. OddOccurrencesInArray (C++)
  • [프로그래머스] 단어 변환 (C++)
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

    • 홈
    • 스터디
    • 금융경제
    • 후기
    • 기타
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    codility
    코딩
    스프링부트
    MySQL
    자바
    pythoncodingtest
    알고리즘
    스프링
    코딜리티
    쿠버네티스
    카카오코테
    코딩테스트
    java
    db
    Kotlin
    Spring
    kafka
    금융용어
    C++
    LeetCode
    springboot
    리트코드
    코테공부
    네트워크
    Python
    코테
    프로그래머스
    CodingTest
    이분탐색
    자료구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[프로그래머스] 가장 먼 노드 (C++)
상단으로

티스토리툴바