본문 바로가기

반응형

PS

(334)
[BOJ] 백준 25308 방사형 그래프 (Swift) 문제 https://www.acmicpc.net/problem/25308 25308번: 방사형 그래프 게임 캐릭터의 능력치를 한 눈에 보기 좋게 나타내는 방법으로 방사형 그래프가 있다. 캐릭터는 8개의 능력치를 갖고 있고 각 능력치를 $a_1, a_2, \cdots, a_8$이라고 하면, 그래프는 팔각형 형태이고 www.acmicpc.net 풀이 먼저, 순열을 통해 능력치를 나열할 수 있는 모든 경우를 구해줍시다. 이제 이 능력치에 대해서 a1, a2, a3가 볼록인지, a2, a3, a4가 볼록인지 ... a8, a1, a2가 모두 볼록인지 확인해주고 모두 볼록이라면 볼록 다각형이 만들어지는 경우일 것입니다. 다음과 같은 공식을 통해 볼록인지 확인할 수 있습니다. $(a1 \times a3) \time..
[BOJ] 백준 11758 CCW (Swift) 문제 https://www.acmicpc.net/problem/11758 11758번: CCW 첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다. www.acmicpc.net 풀이 점 3개를 가지고 방향성을 알 수 있는 CCW라는 알고리즘이 있습니다. 공식으로는 $direction = (x1 \times y2 + x2 \times y3 + x3 \times y1) - (y1 \times x2 + y2 \times x3 + y3 \times x1)$ 이 $direction$이 양수이면 반시계방향, ..
[BOJ] 백준 2166 다각형의 면적 (Swift) 문제 https://www.acmicpc.net/problem/2166 2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net 풀이 신발끈 공식을 사용하여 풀이하였습니다. 소스코드 후기 신발끈 공식이라는게 있는지도 몰랐습니다. 공식만 안다면 쉽게 풀 수 있는 문제였습니다.
[BOJ] 백준 2213 트리의 독립집합 (Swift) 문제 https://www.acmicpc.net/problem/2213 2213번: 트리의 독립집합 첫째 줄에 트리의 정점의 수 n이 주어진다. n은 10,000이하인 양의 정수이다. 1부터 n사이의 정수가 트리의 정점이라고 가정한다. 둘째 줄에는 n개의 정수 w1, w2, ..., wn이 주어지는데, wi는 정점 i의 www.acmicpc.net 풀이 트리에서 DP를 사용하는 문제입니다. 독립 집합을 만들 때, 최대 가중치를 구하기 위해 다음과 같이 작성할 수 있습니다. 현재 노드를 선택헀다면, 다음 노드를 선택 못함 (현재노드의 가중치를 더함) 현재 노드를 선택하지 않았다면, 다음 노드를 선택하거나 안하거나. max(다음 노드를 선택한 값, 다음 노드 선택 안한 값) 점화식은 다음과 같이 세울 수 있..
[BOJ] 백준 2533 사회망 서비스(SNS) (Swift) 문제 https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 첫 번째 줄에는 친구 관계 트리의 정점 개수 N이 주어진다. 단, 2 ≤ N ≤ 1,000,000이며, 각 정점은 1부터 N까지 일련번호로 표현된다. 두 번째 줄부터 N-1개의 줄에는 각 줄마다 친구 관계 트리의 에 www.acmicpc.net 풀이 트리에서 DP를 사용하는 문제입니다. 현재 노드가 얼리어답터가 아니라면, 다음 노드는 무조건 얼리어답터여야 함 현재 노드가 얼리어답터라면, 다음 노드는 얼리어답터일 수도.. 아닐 수도.. 점화식은 다음과 같이 정의할 수 있습니다. $f(n, 0) = $: n번 노드가 얼리어답터가 아님 $f(n, 1) = $: n번 노드가 얼리어답터 점화식: $f(n, ..
[BOJ] 백준 1949 우수 마을 (Swift) 문제 https://www.acmicpc.net/problem/1949 1949번: 우수 마을 N개의 마을로 이루어진 나라가 있다. 편의상 마을에는 1부터 N까지 번호가 붙어 있다고 하자. 이 나라는 트리(Tree) 구조로 이루어져 있다. 즉 마을과 마을 사이를 직접 잇는 N-1개의 길이 있으며, www.acmicpc.net 풀이 트리에서 DP를 사용하는 문제입니다. 현재 마을이 우수 마을 이라면 다음 마을은 절대 우수 마을이 될 수 없습니다. 현재 마을이 우수 마을 이라면 다음 마을은 우수 마을일 수도 있고 아닐 수도 있습니다. 여기서 dp로 사용할 배열의 점화식을 다음과 같이 정의할 수 있습니다. $f(n, 0) =$: n번째 마을이 우수 마을이 아님 $f(n, 1) =$: n번째 마을이 우수 마을임..
[BOJ] 백준 15681 트리와 쿼리 (Swift) 문제 https://www.acmicpc.net/problem/15681 15681번: 트리와 쿼리 트리의 정점의 수 N과 루트의 번호 R, 쿼리의 수 Q가 주어진다. (2 ≤ N ≤ 105, 1 ≤ R ≤ N, 1 ≤ Q ≤ 105) 이어 N-1줄에 걸쳐, U V의 형태로 트리에 속한 간선의 정보가 주어진다. (1 ≤ U, V ≤ N, U ≠ V) www.acmicpc.net 풀이 트리에서 DFS + DP를 사용하여 풀 수 있는 문제입니다. r을 루트노드인 트리에서 탐색을 하면서, 서브트리에 속한 정점의 수를 계산할 수 있습니다. 이를 계산하면서, 모든 정점에 대해서 각 정점을 루트로 하는 서브트리에 속한 정점의 수를 DFS + DP를 사용해 계산할 수 있습니다. 소스코드 후기 트리에서 다이나믹 프로그..
[BOJ] 백준 17472 다리 만들기 2 (Swift) 문제 https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 풀이 구현할게 많았던 문제였습니다. 먼저, 저는 BFS를 사용해 섬에 번호를 부여해주었습니다. 그리고 다리를 놓는 방법에 대해서 고민을 했는데, 다리를 놓으려면 섬의 외각에 있어야 합니다. 섬에 외각에 있다는 것은 자신을 중심으로 상, 하, 좌, 우에 한 뱡향이라도 바다가 있으면 섬의 외각이라고 판별하였습니다. 섬의 좌표에서 상 하 좌 우를 확인하고, 바다가 있다면 다리..

반응형