[Python][백준 2887][최소스패닝트리][Union-Find] 행성 터널 - 컴도리돌이
2887번: 행성 터널 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109보다 크거나 같고, 109보다 작거나 같은 정수이다. 한 위치에 행성이 두 개 이 www.acmicpc.net 풀이 과정 1. 최소 스패닝 문제로 풀었기에 입력받은 x, y, z와 인덱스 번호를 붙여서 before 배열에 삽입해주었다. 2. before 배열을 이중 반복문으로 다음과 같이 after 배열을 생성해주었다. 2-1. x, y, z 순으로 정렬하기 위해서 첫 번째 반복문의 범위를 3만큼 돌려서 각각 x, y, z 순으로 정렬해주었다. 2-2 두 번째 반복문은 범위를 1~n까지 설정하고 0번째 인덱스 값을 before_loc에 저..
더보기
[Python][백준 1379,1374][우선순위 큐,정렬] 강의실, 강의실 2 - 컴도리돌이
1374번: 강의실 첫째 줄에 강의의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 www.acmicpc.net 1379번: 강의실 2 첫째 줄에 강의의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 www.acmicpc.net 풀이 과정 - 강의실 1. 강의실을 최소로 배정하는 개수를 구해야 한다. 2. heap에서 시작시간, 끝나는 시간, 강의실 번호를 heap push를 한다. 3. 첫 번째로 시작시간이 가..
더보기