목록Study/Algorithm (400)
hwooo
https://www.acmicpc.net/problem/25644 25644번: 최대 상승 미래를 예측하는 능력이 있는 정균이는 앞으로 $N$일간 ANA 회사의 주가가 어떻게 변하는지 정확히 예측할 수 있다. 정균이는 예측한 결과를 바탕으로 ANA 회사의 주식 한 주를 적당한 시점에 사고 www.acmicpc.net 풀이 i번째 원소 탐색 시, 현재까지의 최소값을 구한 후 i번째 원소-최솟값과 DP[i-1] 값을 비교해 더 큰 것을 DP[i]에 저장하고 최종적으로 DP[N-1] 값을 출력하였다. 코드 #include int A[200000], DP[200000]; int main() { int N, min; scanf("%d", &N); for (int i = 0; i < N; i++) scanf("%..
https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 풀이 에라토스테네스의 체를 이용하여 100만까지의 소수를 구하고, 주어진 N에서 소수와 N-소수의 값이 모두 소수라면 출력했다. 코드 #include #include using namespace std; int flag[1000001]; vector Isprime; void Chae(int N); int main() { int N, P; int i, j, cnt; Chae(..
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이 완전탐색으로 모든 노드를 다 확인하여 Max값을 구하였다. 또, ㅏ,ㅓ,ㅗ,ㅜ 모양은 DFS로 탐색할 수 없으므로 따로 구해주었다. 코드 #include #include #include #include using namespace std; int N, M, Max = 0; int map[501][501]; bool visited[501][501]; void DFS(int x, int y, i..
https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 풀이 모든 위치의 초기값을 자기 자신으로 설정하고, 뱀과 사다리를 이용해 이동해야 할 경우 이동한 위치를 저장했다.BFS를 통해 최단 거리를 탐색할 때에도 이동한 최종 위치를 큐에 삽입하고 계산했다. 코드 #include #include #include #include using namespace std; int board[101], visited[1..
https://www.acmicpc.net/problem/24445 24445번: 알고리즘 수업 - 너비 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 풀이 입력 받은 후 각 노드를 내림차순으로 정렬한 후 BFS를 실행하였다. 방문한 기록이 없는 노드만 큐에 저장하고, cnt를 전역변수로 지정하여 큐에 노드를 삽입할 때마다 cnt를 하나씩 증가시키며 방문 순서를 저장하였다. 코드 #include #include #include #include using namespace s..
https://www.acmicpc.net/problem/24444 24444번: 알고리즘 수업 - 너비 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양방 www.acmicpc.net 풀이 입력 받은 후 각 노드를 오름차순으로 정렬한 후 BFS를 실행하였다. 방문한 기록이 없는 노드만 큐에 저장하고, cnt를 전역변수로 지정하여 큐에 노드를 삽입할 때마다 cnt를 하나씩 증가시키며 방문 순서를 저장하였다. 코드 #include #include #include #include using namespace ..
https://www.acmicpc.net/problem/24480 24480번: 알고리즘 수업 - 깊이 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 풀이 입력 받고 각 노드를 내림차순으로 정렬한 후 DFS를 실행하였다. 방문한 기록이 없는 노드에만 DFS를 실행하고, cnt를 전역변수로 지정하여 DFS를 돌 때마다 값을 하나씩 증가시키며 방문 순서를 저장하였다. 코드 #include #include #include using namespace std; vector V[1..
https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 풀이 입력 받고 각 노드를 오름차순으로 정렬한 후 DFS를 실행하였다. 방문한 기록이 없는 노드에만 DFS를 실행하고, cnt를 전역변수로 지정하여 DFS를 돌 때마다 값을 하나씩 증가시키며 방문 순서를 저장하였다. 코드 #include #include #include using namespace std; vector V[1..