그래프 이론
[백준] 9372번 상근이의 여행 (feat. 그래프 이론, 최소 신장 트리)
[백준] 9372번 상근이의 여행 (feat. 그래프 이론, 최소 신장 트리)
2023.04.11https://www.acmicpc.net/problem/9372 문제 분석 첫 번째 단계(문제 요약 및 조건 파악) - 문제 요약 N개의 국가를 여행하려고 함. 비행 스케줄이 주어졌을 때, 가장 적은 종류의 비행기를 탈 수 있도록 하는 프로그램을 작성할 것. 한 국가에서 다른 국가로 이동할 때, 다른 국가를 겨쳐 가도됨. - 입력 첫 번째 줄에는 테스트 케이스의 수 T(T
[이코테] Chapter10-3 / 도시 분할 계획
[이코테] Chapter10-3 / 도시 분할 계획
2023.02.21도시 분할 계획 동물원에서 막 탈출한 원숭이 한 마리가 세상 구경을 하고 있다. 어느 날 원숭이는 '평화로운 마을'에 잠시 머물렀는데 마침 마을 사람들은 도로 공사 문제로 머리를 맞대고 회의 중이었다. 마을은 N개의 집과 그 집들을 연결하는 M개의 길로 이루어져 있다. 길은 어느 방향으로든지 다닐 수 있는 편리한 길이다. 그리고 길마다 길을 유지하는데 드는 유지비가 있다. 마을의 이장은 마을을 2개의 분리된 마을로 분할할 계획을 세우고 있다. 마을이 너무 커서 혼자서는 관리할 수 없기 때문이다. 마을을 분할할 때는 각 분리된 마을 안에 집들이 서로 연결되도록 분할해야 한다. 각 분리된 마을 안에 있는 임의의 두 집 사이에 경로가 항상 존재해야 한다는 뜻이다. 마을에는 집이 하나 이상 있어야 한다. 그렇게..
[이코테] Chapter10-2 / 팀 결성
[이코테] Chapter10-2 / 팀 결성
2023.02.21팀 결성 학교에서 학생들에게 0번부터 N번까지의 번호를 부여했다. 처음에는 모든 학생이 서로 다른 팀으로 구분되어 N + 1 개의 팀이 존재한다. 이때 선생님은 '팀 합치기' 연산과 '같은 팀 여부 확인' 연산을 사용할 수 있다. '팀 합치기' 연산은 두 팀을 합치는 연산이다. '같은 팀 여부 확인' 연산은 특정한 두 학생이 같은 팀에 속하는지를 확인하는 연산이다. 선생님이 M개의 연산을 수행할 수 있을 때, '같은 팀 여부 확인' 연산에 대한 연산 결과를 출력하는 프로그램을 작성하시오. 입력 조건 첫째 줄에 N, M이 주어진다. M은 입력으로 주어지는 연산의 개수이다. (1
[이코테] Chapter10-1 / 다양한 그래프 알고리즘
[이코테] Chapter10-1 / 다양한 그래프 알고리즘
2023.02.20이미 배운 내용을 훑어보자 지금까지 코딩 테스트에서 출제 비중이 높은 알고리즘 유형들을 다루어보았다. 이번 장에서는 지금까지 다루지 않았던 그래프 알고리즘을 추가로 다룰 것이다. 이전 5장 'DFS/BFS'와 9장 '최단 경로'에서 다룬 내용은 모두 그래프 알고리즘의 한 유형으로 볼 수 있다. 이외에도 그래프 알고리즘은 굉장히 다양한데, 코딩 테스트에서 출제 비중이 낮은 편이지만 꼭 제대로 알아야 하는 알고리즘이다. 여기서 다루는 개념들을 바르게 이해할 수 있다면 코딩 테스트에서 만나게 될 다양한 응용문제들도 해결할 수 있을 것이다. 10장에서 다룰 알고리즘은 앞서 배운 내용에 기반하는데, 예를 들어 크루스칼 알고리즘(Kruskal Algorithms)은 그리디 알고리즘으로 분류되며, 위상 정렬 알고리즘..