개인공부/코딩테스트(103)
-
백준 2573번: 빙산 / C++
2573번: 빙산 (acmicpc.net) 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net BFS를 응용한 문제로 처음에 10번안에 빙하가 다 녹는다고 생각해서 코드를 작성했는데 아닌 문제였기 때문에 다시 코드를 작성했다. 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 ..
2023.03.24 -
백준 2589번 : 보물섬 / C++
https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7..
2023.03.23 -
백준 11657번 : 타임머신 / C++
https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. 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 ..
2023.03.22 -
백준 9370번 : 미확인 도착지 / C++
https://www.acmicpc.net/problem/9370 9370번: 미확인 도착지 (취익)B100 요원, 요란한 옷차림을 한 서커스 예술가 한 쌍이 한 도시의 거리들을 이동하고 있다. 너의 임무는 그들이 어디로 가고 있는지 알아내는 것이다. 우리가 알아낸 것은 그들이 s지점에서 www.acmicpc.net 내가 푼 문제들중에 가장 어려운 문제였다. 문제의 길이와 변수들도 많이 있어서 복잡한 문제였다. 76번줄에 들어왔을때에더 map에도 추가를 했어야했는데 안해줘서 틀렸고 그 이후에는 잘 해결하였다. 핵심은 Info 비교 연산과정에서 g,h를 지나면 true 인 경우에 먼저 map에서 나오게 만들었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2..
2023.03.21 -
백준 1504번 : 특정한 최단 경로 / C++
https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 다익스트라 알고리즘 응용문제였다. 하지만 코드를 작성하는 과정에서 너무 실수를 많이 해서 계속해서 틀렸는데 좀 더 집중해서 코드를 작성해야겠다. 처음 방문하는 노드에 대해서 0으로 설정하다 보니 진짜로 처음 노드는 0이 되어야 하는데 다른 이상한 값들이 들어가서 오류가 발생했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17..
2023.03.20 -
백준 1753번 : 최단 경로 / C++
1753번: 최단경로 (acmicpc.net) 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 다익스트라 알고리즘에 대해서 공부하고 다익스트라 알고리즘을 적용하는 문제였다. 다익스트라가 사람이름이라니 첫번째 방법으로는 배열을 이용한 방법이였는데 Next 함수의 시간 복잡도가 O(n) 이여서 정점의 갯수가 많아지면 시간이 너무 오래걸려서 시간초과가 발생하였다. 그래서 처음부터 코드를 다시 작성해서 map 을 이용해서 최솟값을 구하는 시간을 단축해서 문제를 해결하였다. 1 2..
2023.03.18