반응형
반응형
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 난이도: solved.ac 실버 3 DFS를 이용하면 쉬운 문제다 (BFS로 풀어도 될 것 같음) 각 컴퓨터끼리의 연결을 그래프로 나타내서 arr라는 2차원 배열에 각 노드의 연결을 나타내주고 visited라는 1차원 배열에 컴퓨터의 방문을 나타내주었다 #define _CRT_SECURE_NO_WARNINGS #include #define MAX 101 int arr[MAX][MAX]; int visi..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 난이도: solved.ac 실버 1 BFS를 알고 있다면 쉽게 풀 수 있는 문제다 먼저 map에 입력을 받아주고, visited라는 2차원 배열을 통해 해당 index의 위치를 방문했는지 표시하며 이때 표시는 출발 위치로부터 떨어진 거리로 표시한다 문제에서 출발 위치와 도착 위치도 칸을 세야 한다고 했으므로 visited를 1부터 시작했다 Ex. visited[0][0] = 1 visited[0][1] = 2 ... 내가 말을 ..
https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 난이도: solved.ac 실버 3 구현은 좀 까다로웠지만 아이디어를 생각해내는 건 어렵지 않았다 내 아이디어는 이렇다 먼저 가장 가운데인 1의 위치를 찾아주었는데 이는 쉽게 계산할 수 있다 N을 2로 나눈 몫이 1의 행, 열의 좌표이다 (index가 0부터 시작한다고 할 때) 그리고 r이라는 변수로 반지름을 나타냈는데 이 또한 N을 2로 나눈 몫이다 여기서 반지름이란 맨 가운데인 1부터 맨 바깥 ..
https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 난이도: solved.ac 실버 2 재귀를 이용하면 쉽게 풀 수 있다 먼저 시작점 arr[0][0]를 기준으로 find 라는 함수를 불렀다 이때 find 함수는 아래와 같다 int find(int x, int y, int N) { ... } x와 y는 각각 arr의 행, 열을 의미하고 N은 종이의 크기를 나타낸다 find 함수 안에서는 base라는 변수로 arr[x][y]를 기준으로 잡..
https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 난이도: solved.ac 실버 1 (주의해야할 점) 행렬을 입력받을 때 1 1 0 0 1 0 0 1 0 처럼 한 칸씩 띄어져 있는게 아니라 110 010 010 처럼 붙여있는 형태라 "%1d"로 입력받아야 숫자 하나당 scanf를 할 수 있다 행렬의 크기가 3*3보다 작을 때는 무조건 -1를 출력하는 게 아니라 두 행렬이 같을 때는 0을 출력한다 #define _CRT_SECURE_NO_WARNINGS #in..
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A B가 되면 다시 re..