본문 바로가기

알고리즘 문제풀이/백준134

[백준 1043] 거짓말 www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net union-find 써야하는데...까지만 파악한 문제 유니온 파인드쓰는 것 까지는 쉽게 캐치가 가능하나 그걸로 끝이 아니었다. 1. 같은 파티에 있는 사람을 체크 2. 파티로 연결된 사람들 체크 3. 진실을 말하면 안되는 사람들이 있는 파티 체크 이렇게 3가지가 필요한데 3가지가 동시에 진행되기는 힘들다. 따라서 1,2는 유니온 파인드를 사용하여 사람들을 연결하고 3은 파티별로 돌면서 참가자 중 진실을 말하면 안되는 사람.. 2021. 1. 30.
[백준 11660] 구간 합 구하기 5 www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net #include #include using namespace std; int n, m; int arr[1025][1025]; vector v; int main(void) { scanf("%d%d", &n, &m); for (int i = 1; i 2021. 1. 28.
[백준 2630] 색종이 만들기 www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net divide and conquer로 카테고리로 분리가 되어있지만 재귀함수를 사용하자... #include using namespace std; int n; int arr[129][129]; int res[2]; bool isValid(int x, int y, int len) { int cmp = arr[x][y]; for (int i = x; i < x + len; i++) { for.. 2021. 1. 27.
[백준 1197] 최소 스패닝 트리 www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net mst 구현 문제 크루스칼 알고리즘을 사용하여 풀었다. #include #include #include using namespace std; struct s { int a, b, cost; }; int parent[10001]; vector vs; int v, e; bool cmp(const s &t1, const s &t2) { return t1.cost < t2.. 2021. 1. 26.