목록알고리즘/그래프 (57)
코딩공작소

https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하 www.acmicpc.net 시뮬시뮬. 주기와 struct 2차배열에 대해 공부한거 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1..
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크 www.acmicpc.net 매번 풀어도 재밌는 문제. bfs+vector(sort) or Priority Queue를 이용하는 문제이다. 1 2 3 4 5 6..
보호되어 있는 글입니다.
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동 www.acmicpc.net 나름 신박한 문제 ! 일단 최소거리를 구하는것이라서 bfs라고 생각했고 등산로 조성과 비슷한 느낌이라서 flag를 통해 벽을 ..
https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 현타... 하.. 나레기.. dfs의 동작순서 및 원리에 대해서 정확히 생각했어야됐는데 애초에 생각자체를 잘못(false그룹을 dfs를 통해 전부 연결되었는지 확인했고 true는 바로 dfs를 통해 묶어줬었는데 dfs로 묶으면 깊이탐색이기 때문에 안묶이는 경우가 생김... 또한 dfs로 개수세는 것도 파라미터로 len을 파고들어서 전체 개수를 센게 아니고 그냥 깊이만 셌었음)해서 첨엔 못풀었었다........ 하.. ..

https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 상당히 구현할 량도 많고 그래프도 복잡한 문제 .. 복구 한 것에서 틀린 부분은 일직선 거리가 아니라 옆으로도 갈 수 있는 것이다..또한 완전탐색 실수 그래서 한칸 갈때마다 뒷방향을 제외한 나머지 3방향에 대한 길의 여부를 통해 거리를 측정해주었다. 그리고 원래는 최소값을 찾아서 int형으로 return을 해주었는데 그렇게 되면 최소의 거리를 찾고 그 다음의 다른섬으로 가는 ..
https://www.acmicpc.net/problem/16197 16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, 두 동전의 위치는 다르다. 버튼은 "왼쪽", "오른쪽", "위", "아래"와 같이 4가지가 있다. 버튼을 누르면 두 동전이 버튼에 쓰여 있는 방향으로 동시에 이동하게 된다. 동전이 이동하려는 칸이 벽이면, 동전은 이동하지 않는다. 동전이 이동하려는 방향에 칸이 없 www.acmicpc.net 문제를 읽었을 때 구슬탈출2와 굉장히 비슷한 느낌을 받았다. 최소 횟수를 구해주기 때문에 bfs를 사용했고, 2개의 구슬의 위치관계를..
https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 현재 주어진 상황에서 몇연쇄가 되는지 출력하라. (하나도 터지지 않는다면 0을 출력하면 된다.) www.acmicpc.net flag를 사용하는 문제의 경우 dfs보다 bfs가 적합한것 같다. dfs의 경우는 재귀구조로 계속 flag정보가 변한다. 최종 원하는 함수를 실행하고 바로 종료해주기가 까다롭다. --> 종료시점의 부분에서 항상 주의해야 한다!!!! 또한, flag를 설정할 때 else false를 해주면 이미 true를 발견했지만 다시 false로 정보가 갱신되는 문제에 주의해야한다. 즉, true가 한번이라도 있으면 true로 바꾸고 나머지 경우에 대해서는 false로 갱신을 하면 안된다는 것...
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러쌓여 있으며, 지도 밖으로 나갈 수 없다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 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 ..
https://www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은, 섬들을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다는 생각을 하게 되었다. 그래서 그는, 생색내는 식으로 한 섬과 다른 섬을 잇는 다리 하나만을 만들기로 하였고, 그 또한 다리를 가장 짧게 하여 돈을 아끼려 하였다. 이 나라는 N×N크기의 이차원 평면상에 존재한다. 이 나라는 여러 섬으로 이루어져 있으며, 섬이란 동서 www.acmicpc.net 흠 .. A형문제랑 살짝비슷(좀더 쉬움) .. 섬별로 단지인덱싱을 하고 섬별로 출발을 해서 최소 거리를 구하는..? 배울게 많은 문제..