코드19 [C/C++] 백준 17404: RGB 거리 2 https://www.acmicpc.net/problem/17404 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 하나 주의해야 할건 첫번째 칠한 집과 마지막으로 칠한 집의 색깔이 같으면 안되는것이다. 그렇기 때문에 기존의 DP로 문제를 풀게 된다면 이 조건을 만족시키기에 쉽지 않다. 따라서 여기서 생각해야하는건 첫번째로 칠할 집의 색깔을 정하고 나서 for문을 3번 돌며 각각의 경우세어 모든 집을 칠하는 비용의 최솟값을 구해야한다. 즉 dp[0][1]로 시작했을 때는 dp[1][.. 2023. 9. 28. [C/C++] 백준 1167: 트리의 지름 (다익스트라 풀이) https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 풀이 방법?? 문제 자체가 트리의 지름을 구하라고 하는데 이때 트리의 지름이란 임의의 두 점 사이의 거리 중 가장 긴 것을 의미한다. 그렇기 때문에 모든 노드에서 DFS 혹은 다익스트라 알고리즘을 통해 가장 긴 거리를 구하려는 것이 첫번째 생각일 것이다. 하지만 이렇게 할 경우 각 정점마다 (V) 트리를 모두 순회하며 (V) 최댓값을 구해야하기 때문에 O(V^2)의 시간이 걸려 시.. 2023. 9. 15. [C/C++] 13549: 숨바꼭질 3 (BFS,Queue) https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 결론부터 말하자면 이 문제는 queue를 이용해 bfs로 풀 수 있는데 이때 2의 배수일 때는 0초만에 도달 가능하다는 것만 유의하면 된다. 구현?? 이를 구현하기 위해서 내가 사용했던 방법은 함수 after_onesec와 after_zero이다. after_onesec는 1초뒤에 갈 수 있는 곳을 queue에 넣는 방식으로 동작되는데 이때 queue.fron.. 2023. 9. 12. [C++] 기초부터 공부하기 (2. 이차원 배열 정렬 feat.좌표 정렬하기) 지난번에 이어 이번에도 C++ 기초를 공부하려고 한다! 백준 문제를 풀면서 C++에 익숙해지는 것을 첫번째 목표로 두고 있기 때문에 쉬운 문제 위주로 생각하려고 한다. 1) C++ 기초(Vector) 문제를 풀면서 이차원 배열을 사용할 일이 생겼는데 C에서 쓰는 기초적인 이차원 배열을 쓰려고 했더니 C++에는 vector이 있다는 것을 깨닫고 이것에 대한 기초를 조금 알아보고자 한다. 1-1) Vector? vector은 C++ STL(Standard Template Library: 이미 만들어진 탬플릿을 이용하기 위해서 사용됨)에 속하며 배열처럼 원소들을 순서대로 보관하는 Sequence Container에 속한다. 한 문장으로 vector을 정리하자면 "자동으로 메모리가 할당되는 배열"이라고 할 수 .. 2023. 9. 2. 이전 1 2 3 4 5 다음