https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 1번 노드에서부터 각 노드까지의 최단 거리를 구해야 하므로, BFS를 활용하자 그래프를 탐색하는 방법은 깊이 우선 탐색(DFS)와 너비 우선 탐색(BFS)가 있다. 이중 최단 거리를 구하는 데는 BFS를 사용한다. 사실 각 노드를 연결하는 간선의 비용을 모두 1로 둔 채 최소 비용을 구하는 다익스트라 알고리즘을 사용할 수도 있지만, 굳이 2차원 배열인 다익스트라를 사용하지 않아도 된다...
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 일단 딕셔너리 자료 구조에 a 공항에서 방문할 수 있는 모든 도시 정보를 저장하자 dfs를 사용하기 위해 딕셔너리 자료 구조가 필요하다. key는 공항이고, value는 해당 공항에서 방문 가능한 모든 도시 정보가 담긴 리스트이다. 이때 각 공항별 방문 가능 도시 정보를 알파벳 역순으로 정렬하자. 나중에 한 도시씩 방문할 때 pop() 메서드를 사용할 것인데, 알파벳 역순으로 정렬되어 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 현재 시간까지 요청된 모든 작업들 중에서 가장 작업 소요 시간이 짧은 것부터 처리하자 ➡ 최소 heap heap에 요청된 작업을 모두 넣어두고 나서 한 개를 꺼내면, 바로 그것이 가장 짧은 소요 시간을 가지는 작업이다. 현재 시간 time에서 가장 짧은 작업의 작업 시간만큼 더해서 해당 작업이 처리됐음을 표현한자. 만약 현재 시간까지 요청된 작업이 없다면, 1초를 증가하고 다시 요청 작..
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 연결 정보를 따라 a와 b 컴퓨터의 네트워크를 합치자 (union) computers 연결 정보를 완전 탐색하면서 네트워크를 합친다. 이때 computers[a][b] = 1이라면 a와 b 위치가 서로 바뀐 computers[b][a] = 1이다. 이미 computers[a][b]로 컴퓨터a와 컴퓨터b의 네트워크를 합쳤기 때문에 computers[b][a] = 0으로 초기화해서 다음 번..