-
1197.최소 스패닝 트리알고리즘/백준 BAEK JOON 2020. 8. 20. 22:40
이번에 풀어볼 문제는 백준 1197번 최소 스패닝 트리이다. 이전 포스팅에서 스패닝 트리를 공부했다면 이번에는 간선에 가중치가 들어있어서 최소한의 간선으로 연결하되, 가중치도 최소로 진행하는 최소 스패닝 트리 문제를 풀어보았다. 직접 구현하는 방법에 대해서 공부할 수 있는 문제이다. 이해가 안간다면 코드를 보거나 그림을 그려서 공부해보자 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 � www.acmicpc.net 이 문제는 크루스칼 알고리즘과 프림 알고리즘으로 풀이할 수 있다. 크루스칼 ..
-
9372.상근이의 여행알고리즘/백준 BAEK JOON 2020. 8. 20. 00:36
이번에 풀어볼 문제는 백준 9372의 상근이의 여행이라는 문제이다. 9372번: 상근이의 여행 문제 상근이는 겨울방학을 맞아 N개국을 여행하면서 자아를 찾기로 마음먹었다. 하지만 상근이는 새로운 비행기를 무서워하기 때문에, 최대한 적은 종류의 비행기를 타고 국가들을 이동하려� www.acmicpc.net Spanning Tree에 대해서 공부할 수 있는 문제이며 최소 신장 트리(MInimum Spanning Tree)까지 공부할 수 있었다. Spanning Tree : 방향이 없는 그래프에서 모든 정점들을 연결함과 동시에 순환경로가 없는 형태를 의미한다. => 만약 이와 같은 상황에서 가중치가 포함되고 최소 가중치만을 이용하여 연결하는 경우를 최소 신장 트리라고 한다. 이 문제를 잘 읽어보면 일단 최소 ..
-
1932.정수 삼각형알고리즘/백준 BAEK JOON 2020. 8. 19. 21:37
이번에 풀어볼 문제는 백준 1932번 정수 삼각형이다. 1932번: 정수 삼각형 문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최� www.acmicpc.net 정말 쉬워보이지만 자신의 인접한 대각선의 숫자로만 합을 구해야한다는 점을 해결해야만 이 문제를 풀 수 있다. 이 문제를 푸는 방법은 대표적으로 DP 동적계획법을 사용하는 것이다. * 제일 꼭대기의 값 부터 값을 누적해서 진행하되 겹치는 부분은 둘 중 큰 값으로 누적하면 된다 * 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ..
-
1074.Z알고리즘/백준 BAEK JOON 2020. 8. 15. 17:36
이번에 풀어볼 문제는 백준의 Z이다. 재귀함수를 이용하여 탐색을 하는 문제인데 재귀함수를 잘 활용해야 풀 수 있는 문제이다. 개인적으로 쉬워보이지만 난이도가 상당하다고 느꼈다. 이런 문제를 잘풀어야하는데.. 흑흑.. 1074번: Z 한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, 2차원 �� www.acmicpc.net 이 문제를 푸는 포인트는 두 가지이다. 1. 재귀함수에서 조건을 통해 굳이 확인할 필요없는 탐색 순번은 그 카운트 만큼 더해주고 넘어가기 2. 4등분해서 탐색하되 크기에 상관없이 이러한 탐색이 진행되도로 재귀함수를 짤 수 있어야 한다 ..
-
15686.치킨배달알고리즘/백준 BAEK JOON 2020. 8. 11. 00:43
이번에는 오랜만에 백준의 문제를 풀어보았다. 15686 치킨배달이라는 문제이고 재귀함수 조합에 대한 공부를 하기 좋은 문제 같다. 난이도나 유형은 이전의 요리사와 상당히 비슷한 문제같이 느껴진다. 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 다행이 풀어내는데 성공했고 풀어내면서 느낀점은 설계의 중요성이다. 재귀함수를 두 번 진행했기에 설계를 잘못하면 너무 복잡해지므로 꼭 설계가 끝나기전까지는 코딩하지말자!! 이 문제의 풀이 과정은 다음과 같다. 1. 치킨의 좌표들 중에 M개를 선택하는 ..
-
4012.요리사알고리즘/SW Expert Academy 2020. 8. 6. 22:41
이번에 풀어볼 문제는 SW Expert의 4012번 요리사이다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 지금까지 풀었던 SW Expert 문제 중에 문제가 가장 애매하게 출제된 거 같다. 그 이유는 식재료에 대한 중복내용이 없기 때문에 어떻게 풀어아햐는건지 확실하지 않다고 느꼈기 때문이다. 하여튼 간에 문제를 처음 읽어보면 어떤 부분이 애매한지 느낄 수 있을 것이다. 애매한 부분만 빼면 재귀함수를 연습하기에는 괜찮은 문제인 거 같다 => 나는 재귀를 잘못해서 조금 골치아팠다.. 이 문제는 결론적으로 조합 문제이다. 결국 시너지를 만들어 내기 위함인데 두 가지의 조합이 들어가있다. 1. 음식A와 B에 대..
-
2112.보호필름알고리즘/SW Expert Academy 2020. 7. 30. 01:09
이번에 풀어볼 문제는 SW Expert 2112번 보호 필름이다. 거의다 풀었는데 재귀함수 호출 부분에서 실수가 있었다.. 젠장.. 블로그를 뒤져보던 중 운 좋게 가장 비슷한 풀이를 찾았고 참조하였다. 아무것도 넣지않고 테스트하는 것을 재귀에 포함시켜서 진행했어야 했는데 이 부분을 재귀에서 빼고 진행했더니 경우의 수를 제대로 구하지 못했다... 코드 1줄을 추가 했을 뿐인데 정답이 맞았다.. 크흠.... 참고 : https://jongnan.tistory.com/entry/SW-Expert-2112-%EB%B3%B4%ED%98%B8-%ED%95%84%EB%A6%84 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.co..
-
1953.탈주범 검거알고리즘/SW Expert Academy 2020. 7. 28. 00:36
이번에 풀어볼 문제는 SW Expert의 탈주범 검거이다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이러한 유형의 문제의 난이도는 사람마다 다르겠지만 쉬운 편에 속한다고 생각한다. 그 이유는 문제에서 요구하는 형태들을 정확하게 구현하기만 하면 되기 때문이다. 이번 문제에서도 별다른 고민없이 그저 해당 파이프가 주어졌을 때 어떤식으로 움직이게 되는지만 구현하는 것과 DFS만 구현하면 굉장히 쉽게 풀 수 있는 문제이다. 구현에서 신경써야할 부분은 그저 어떠한 파이프가 주어졌을 때, 탈주범이 갈 수 있느냐 없느냐만 주의해주면 된다. => 단순한 문제이기 때문에 따로 설명은 생략하도록 하겠다. 갈 수 있는지, ..
-
1952.수영장알고리즘/SW Expert Academy 2020. 7. 23. 01:36
이번 문제는 SW Expert 1952 수영장이다. 난이도는 낮은편이다. 하지만 왜인지 아직도 재귀.. 너무 헷갈린다.. 허허.. 집중력이 떨어진거 같다. 다시 열심히 해야겠다..분명 쉬운문제인데.. 흠.. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 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 #pragma warning(disable:4996) #include #..
-
2382.미생물격리알고리즘/SW Expert Academy 2020. 7. 21. 00:40
이번에 풀어볼 문제는 SW Expert의 미생물 격리이다. 정답률은 50%이지만 생각보다 난이도는 높지않다. 하지만 역시나 잘못된 설계 혹은 착각하면 일부분만 자꾸 맞는 이상한 늪에 빠진다.. 때문에 푸는방법이 정확하고 설계도 정확했지만 시간이 생각보다 오래걸렸다..(눈아프다..) SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제를 푸는 설계는 간단하다. 크게 3가지를 구현해주면된다. 1. 미생물의 방향 이동 구현 2. 미생물이 반감 및 방향이 전환되는 부분 구현 3. 미생물이 합쳐지고 그 중 가장 미생물의 개수가 많은 방향을 따라 움직이도록 하는 부분 구현 이 문제를 풀때의 포인트는 2차원 map배열이 아..