Koala - 2기/B반
www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net 문제 출력 : 입력에서 요구한 두 사람의 촌수를 구하라. 촌수를 계산할 수 없을 때는 -1을 출력하라 전체 사람 수 (1≤n≤100) 9 촌수를 구할 사람의 번호 7, 3 관계의 개수 7 관계 부모 자식 1 2 1 3 2 7 2 8 2 9 4 5 4 6 그래프를 이용하기 위해 위의 관계 입력값을 인접리스트 형식으로 받았습니다. //vector arr[101]; for (int i = 0; i < ..
www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 풀이 더보기 이 문제는 플러드 필의 유형이지만, 물에 잠기는 높이에 따라 영역이 달라진다는 차별점이 있습니다. 저는 지점의 높이를 입력받을 때 최저 높이와 최대 높이를 미리 변수에 저장해두었습니다. 그리고 for문을 통해 min_num ~ max_num까지 순회하며 bfs하는 횟수를 계산하였습니다. int min_num = 101; // 최저 높이 int max_num = 0; // 최대 높이 for (int i = ..
# '출석'은 정상적으로 3문제 푸신 분들이고, '보류'는 한문제 이상 푸신분들, '불이행'은 0문제 푸신 분들 입니다. # '보류'로 표시된 분들은 다음날 오전 12시까지 마무리 하시면 '출석'으로 바꿀수 있습니다. # ('보류' 상태에서 다음날 12시까지 마무리 못하시면 불이행입니다!) # '불이행' 3번일시 퇴출입니다. 1주차 1.11 1.12 1.13 1.14 1.15 1.16 1.17 김모경 출석 출석 출석 출석 출석 출석 출석 김영채 출석 출석 출석 출석 출석 출석 출석 김유정 출석 출석 출석 출석 출석 출석 출석 백경환 출석 출석 출석 출석 출석 출석 출석 이동연 불이행 출석 불이행 출석 반 이동 이예은 출석 출석 출석 출석 출석 출석 불이행 최경윤 출석 출석 출석 출석 출석 출석 출석 허태..
www.acmicpc.net/problem/1374 1374번: 강의실 첫째 줄에 강의의 개수 N(1≤N≤100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 번 www.acmicpc.net 문제 N개의 강의가 있다. 우리는 모든 강의의 시작하는 시간과 끝나는 시간을 알고 있다. 이때, 우리는 최대한 적은 수의 강의실을 사용하여 모든 강의가 이루어지게 하고 싶다. 물론, 한 강의실에서는 동시에 2개 이상의 강의를 진행할 수 없고, 한 강의의 종료시간과 다른 강의의 시작시간이 겹치는 것은 상관없다. 필요한 최소 강의실의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 강의의 개수 N(..
문제에 대한 해설은 그래프 기초 강의에 있습니다! 백준 4963번 - 섬의 개수 더보기 www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 코드 더보기 #include #include #include #include #include #pragma warning(disable:4996) using namespace std; int w, h; int check[60][60]; int map[60][60]; queue q; int dr[8] = {..
www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오...
http://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을..
www.acmicpc.net/problem/1374 1374번: 강의실 첫째 줄에 강의의 개수 N(1≤N≤100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 번 www.acmicpc.net N개의 [강의 번호, 강의 시작시간, 강의 종료시간]이 있을 때, 강의 시간이 겹치지 않고 배정하기 위해 필요한 최소한의 강의실 개수를 구하라 이는 이미 시작한 강의의 종료시간이 새로 시작할 강의의 시작시간보다 작으면 강의실의 낭비를 줄일 수 있다. 먼저 강의 목록 중 시작시간과 종료시간을 입력받아 오름차순으로 정렬한다. //typedef pair pii; for (int i = 0; i < n; i..
http://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 전체 코드 더보기 #include #include using namespace std; const int MAX = 10000; int N, M; int num[MAX]; bool calc(int mid) { int sum = 0; for (int i = 0; i N; for (int i = 0; i < N; i+..