개인공부/코딩테스트(103)
-
백준 3197번: 백조의 호수 / C++
https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net 확실하게 플래티넘 문제는 평범하게 모든 경우의 수를 계산해서 문제를 해결하면 시간초과 문제가 발생한다. 이를 해결하기 위해서는 탐색시간을 줄이기 위한 방법을 찾아야 하는데 총 3가지 방법을 이용하여 시간을 단축하였다. 첫번째 방법은 백조를 탐색할때는 이전에 탐색한 구역은 탐색을 하지않는 방법으로 탐색을 하였다. 두번째 방법으로는 입력을 받을때 이전 코드는 모든 입력을 ..
2023.03.29 -
백준 14502번 : 연구소 / C++
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80..
2023.03.29 -
백준 5052번: 전화번호 목록 / C++
5052번: 전화번호 목록 (acmicpc.net) 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #include #include #include using namespace std; int main() { cin.tie(NU..
2023.03.28 -
백준 11725번 : 트리의 부모 찾기 / C++
https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 #include #include #include using namespace std;vector vec[100001];int N;int ans[100001]{};bool visited[100001]{};queue Q; void BFS(){ Q.push(1); visited[1] = true; while (!Q.e..
2023.03.27 -
백준 4779번 : 칸토어 집합 / C++
https://www.acmicpc.net/problem/4779 4779번: 칸토어 집합 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #include #include using namespace std; void Solve(int num) { if (num == 0) { cout
2023.03.27 -
백준 2638번 : 치즈 / C++
https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 같은 제목의 치즈를 응용한 문제이다. 치즈를 기준으로 BFS를 도는 경우가 아니라 가장자리부터 BFS를 사용하는 방법으로 해결하면 간단한 문제이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4..
2023.03.24