Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 튜플
- 티스토리 open api
- 불량 사용자
- 가사 검색
- 카카오 인턴
- 프로그래머스
- 보행자 천국
- 알고리즘
- trie
- Tistory
- Python
- 호텔 방 배정
- 징검다리 건너기
- 트라이
- 크레인 인형뽑기 게임
- CleanCode
- pycon
- Open API
- bulk update
- 티스토리
- jdbc
- 트라이 #trie #알고리즘
- Spring Boot
Archives
- Today
- Total
택시짱의 개발 노트
[프로그래머스] 가장 먼 노드 본문
링크
https://programmers.co.kr/learn/courses/30/lessons/49189
풀이
간단한 BFS로 풀 수 있다.
일단 양방향 그래프를 만든 후
출발지에서 도착한 위치와 거리를 저장할수 있는 구조체를 만들었다.
이전 노드에서 다음 노드에 도착 하였을때 거리를 1 증가 시켜 주었고
방문 여부를 확인하기 위해서 visited배열을 모두 -1로 초기화 하고
방문한 위치를 기억 하기 위해 visited을 거리만큼 갱신 했고
가장 큰 거리와 visited배열과 비교하여 거장 먼 노드의 갯수를 찾을수 있었다.
#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
#include<string>
#include<set>
#include<map>
#include<cstring>
#include<functional>
#define INF 2e9
#define SIZE 20010
using namespace std;
typedef long long int ll;
typedef struct Data {
int n, cost=0;
}Data;
vector<int> arr[SIZE];
int visited[SIZE];
queue<Data> q;
int solution(int n, vector<vector<int>> edge) {
int e_size = edge.size();
for (int i = 0; i < e_size; i++) {
arr[edge[i][0]].push_back(edge[i][1]);
arr[edge[i][1]].push_back(edge[i][0]);
}
memset(visited, -1, sizeof(visited));
Data start;
start.n = 1;
q.push(start);
int m_len = 0;
while (!q.empty()) {
Data here = q.front();
q.pop();
visited[here.n] = visited[here.n] == -1 ? 0 : visited[here.n];
m_len = max(m_len, visited[here.n]);
for (auto next : arr[here.n]) {
if (visited[next] != -1)
continue;
Data nxt; nxt.n = next; nxt.cost = here.cost + 1;
visited[next] = nxt.cost;
q.push(nxt);
}
}
int res = 0;
for (int i = 0; i < n; i++) {
res += m_len == visited[i] ? 1 : 0;
}
return res;
}
반응형
'알고리즘' 카테고리의 다른 글
[백준] 2206번 - 벽 부수고 이동하기 (0) | 2020.02.01 |
---|---|
[백준] 3190번 - 뱀 (0) | 2020.01.30 |
[프로그래머스] 예산 (0) | 2020.01.25 |
[프로그래머스] 섬 연결하기 (0) | 2020.01.24 |
[백준] 2294번 동전 2 (0) | 2020.01.24 |
Comments