youtu.be/Q6pa2akgUGI [섬의 개수 정답 코드] #include #include using namespace std; int field[51][51]; int visited[51][51]; //팔방 check int dx[] = { 0,0,-1,1,-1,1,-1,1}; int dy[] = { -1,1,0,0,-1,1,1,-1 }; int n, m; queue q; void bfs(int x, int y,int cnt); int main() { ios_base::sync_with_stdio(0); cin.tie(0); while (1) { int cnt = 1; cin >> n >> m; if (n == 0 && m == 0) return 0; for (int i = 0; i < m; i++..
Koala - 2기
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 = ..
* 2/22 팀즈 미팅에서 푼 문제 해설입니다! 해당 문제는 "프로그래머스 - [코딩 테스트 연습] - 2020 카카오 인턴십 - 경주로 건설"에서 풀어보실 수 있습니다. 문제 건설회사의 설계사인 죠르디는 고객사로부터 자동차 경주로 건설에 필요한 견적을 의뢰받았습니다. 제공된 경주로 설계 도면에 따르면 경주로 부지는 N x N 크기의 정사각형 격자 형태이며 각 격자는 1 x 1 크기입니다. 설계 도면에는 각 격자의 칸은 0 또는 1 로 채워져 있으며, 0은 칸이 비어 있음을 1은 해당 칸이 벽으로 채워져 있음을 나타냅니다. 경주로의 출발점은 (0, 0) 칸(좌측 상단)이며, 도착점은 (N-1, N-1) 칸(우측 하단)입니다. 죠르디는 출발점인 (0, 0) 칸에서 출발한 자동차가 도착점인 (N-1, N-1..
* 2/22 팀즈 미팅에서 푼 문제 해설입니다! 해당 문제는 "프로그래머스 - [코딩테스트 연습] - 2021 KAKAO BLIND RECRUITMENT - 카드 짝 맞추기" 에서 풀어보실 수 있습니다. 문제 게임 개발자인 베로니는 개발 연습을 위해 다음과 같은 간단한 카드 짝맞추기 보드 게임을 개발해 보려고 합니다. 게임이 시작되면 화면에는 카드 16장이 뒷면을 위로하여 4 x 4 크기의 격자 형태로 표시되어 있습니다. 각 카드의 앞면에는 카카오프렌즈 캐릭터 그림이 그려져 있으며, 8가지의 캐릭터 그림이 그려진 카드가 각기 2장씩 화면에 무작위로 배치되어 있습니다. 유저가 카드를 2장 선택하여 앞면으로 뒤집었을 때 같은 그림이 그려진 카드면 해당 카드는 게임 화면에서 사라지며, 같은 그림이 아니라면 원..
# '출석'은 정상적으로 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.youtube.com/watch?v=I0Dq42C0h8w&feature=youtu.be&ab_channel=%EC%B2%9C%EC%88%98%ED%99%98 [코드] #include #include using namespace std; int n, m, ans = 0; int field[8][8]; int clone_field[8][8]; int dx[] = { 0,0,-1,1 }; int dy[] = { -1,1,0,0 }; //바이러스를 퍼트림. void bfs(); //a field에 b field를 복사함. void clone_it(int(*a)[8], int(*b)[8]); //세개의 벽을 세움. void make_wall(int cnt); int main() ..