
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으로 초기화해서 다음 번..

https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 입국 심사를 시작하는 시간이 아니라, 끝나는 시간을 기준으로 생각하자 처음에 시작할 때는 0분이고, 모든 심사관이 비어 있으므로 한꺼번에 사람이 들어갈 수도 있고 더 빨리 끝나는 사람 뒤에 기다릴 수도 있다. 예를 들어 입국 심사에 1분 걸리는 심사관과 10분 걸리는 심사관이 있고, 심사 받을 사람이 5명이라면 5명 모두 1분 걸리는 심사관 쪽에 줄을 설 테다. 이걸 코드로 작성하..

https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 장르별 재생 수를 누적할 count 딕셔너리와 장르별 가장 많이 재생된 두 곡을 담을 songs 딕셔너리가 필요하다. count 딕셔너리는 {"classic": 300, "pop": 1500} 모습이고, songs는 {"classic": [1, 3], "pop": [2, 0]} 모습이다. 이때 songs의 value는 길이가 최대 2인 리스트이다. 고유번호 i의 재생횟수가 담긴 p..

https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 모든 시간 데이터를 분 단위로 환산하자. 기존 데이터는 시와 분으로 나뉘어져 있고, 심지어 문자열이다. 경험에 의하면 이런 상황에서는 시간을 분 단위로 환산하여 계산하는 것이 수월하였다. 셔틀 버스 운영 시 탑승 크루의 리스트를 만들자. 이를 위해 아래와 같은 작업이 필요하다. 버스 운영 시간표를 만들자. (단, 이때 시간은 모두 분 단위로 표시한다.) 크루가 대기열에 도착하는 시..