Problem Solving/BOJ
-
[BOJ] #17143 _ 낚시왕Problem Solving/BOJ 2019. 8. 4. 09:52
[낚시왕] https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하 www.acmicpc.net 본 문제는 상어를 이동하고, 이동 후 상어의 위치 및 큰 상어가 작은 상어를 먹는 것을 구현하는 것이 문제이다. 해당 문제는..
-
[BOJ] #15686 _ 치킨 배달Problem Solving/BOJ 2019. 8. 4. 09:41
[치킨 배달] https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 www.acmicpc.net dfs를 이용하여 M개의 치킨 집을 고르는 모든 경우의 수를 탐색한다. 모든 경우의 수 중 최소 거리를 구한다. [ 소..
-
[BOJ] #17140 _ 이차원 배열과 연산Problem Solving/BOJ 2019. 7. 17. 07:16
[이차원 배열과 연산] https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net R연산과 C연산을 코드로 구현하는 문제인 것 같다. 정렬 시 우선순위 큐를 이용하면 쉽게 구현할 수 있다. 우선순위 큐를 사용할 때 자료형으로 pair을 사용하면, pair 일 경우에 a값이 같으면 b의 값을 기준으로 우선순위가 결정된다. [ 소스 코드 ] #include #include #include #include #define MAX 101 using n..
-
[BOJ] #16236 _ 아기상어Problem Solving/BOJ 2019. 7. 11. 01:20
[아기상어] https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크 www.acmicpc.net 조건이 많은 문제이다. 물고기의 크기에 상관없이 무조건 가까이 있는 물고기를 먹기만 하면 된다. 따라서, BFS가 적합..
-
[BOJ] #13023 _ ABCDEProblem Solving/BOJ 2019. 7. 10. 22:23
[ABCDE] https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 처음에는 문제를 이해하기 어려웠다. 문제를 해석하면, 그냥 ABCDE가 친구이면 된다 == 5명이상이 친구이면 1, 아니면 0을 출력한다. 좀 더 이해하기 쉽게 예제를 가지고 풀이해보자면, [예제 2번] 다음과 같은 입력은 아래의 그래프와 같이 관계를 표현할 수 있다. 해당 그래프에서 친구를 맺을 수 있는 관계의 수는 4이고, 5명이 친구를 맺을 수 있다. 왜냐하면, 아래의 그래프와 같이 한번에 이어질 수 있는 노드의 갯수가 5개이다. 0 - 3 - 2 - 1 - 4 개인적으로 문제를 이..