[PS] 백준1300 : K번째 수(Java)
CS/알고리즘2023. 12. 28. 18:25[PS] 백준1300 : K번째 수(Java)

문제 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 풀이 파라메트릭 서치를 활용한 풀이 그리디한 접근법 A[i][j]값을 1차원 배열에 기록 후 오름차순 정렬을 통해 원하는 값 B[K]를 구하는 방식 해당 방식으로 풀이하게 될 경우 N^2만큼의 메모리가 필요할 뿐더러 시간 또한 O(N^2)만큼 걸리기 때문에 AC를 받을 수 없음 LowerBound 접근 위의 방식에서 이분탐색을 추가해서 탐색 시간을 줄여야하는데 ..

[PS] 백준13460 : 구슬 탈출 2(Java)
CS/알고리즘2023. 12. 13. 15:22[PS] 백준13460 : 구슬 탈출 2(Java)

문제 https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net https://www.acmicpc.net/problem/13459 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acm..

[PS] 백준2294 : 동전 2(Java)
CS/알고리즘2023. 12. 9. 19:52[PS] 백준2294 : 동전 2(Java)

문제 2294번: 동전 2 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어 www.acmicpc.net 풀이 다이나믹 프로그래밍으로 분류된 문제로 간단한 메모이제이션을 통해 풀이가 가능. 접근법 입력으로 주어진 동전으로 목표가치 K를 만드는 최소 개수를 구하는 문제로 DP문제인 만큼 Sub Problem을 찾으려 했음. Sub Problem : 각각의 동전으로 1원부터 목표(K)까지의 가치를 만들기위한 사용한 동전의 최소개수 부분 문제를 찾았으니 먼저 해야할 것은 부분 해를 저장할 dp배열을 선언하는 것...

[알고리즘] 데이크스트라(Dijkstra)
CS/알고리즘2023. 12. 9. 18:27[알고리즘] 데이크스트라(Dijkstra)

Concept 그리디 알고리즘의 한 분류 다이나믹 프로그래밍 메모이제이션 기법 활용 부분 문제 : 한 정점까지의 최단거리는 방문하는 여러개의 정점들의 최단거리로 이루어져있음. 주어지는 그래프에서 시작 정점으로부터 각 정점까지의 최단경로를 찾는 알고리즘 Feature 우선순위 큐와 거리배열(DP)을 활용하여 로직 구성. 한 정점 V까지의 최단거리를 구할 때 V까지로 가는 여러 정점들의 최단 거리 정보를 활용한다는 특징을 가짐. 가중치를 가진 그래프에서 최단거리를 구할 때 쓰이는 알고리즘 음수 가중치를 가진 그래프에서는 사용불가. 우선순위 큐를 활용함으로써 시간복잡도 : O(N * NlogN) Implement 인접 리스트를 통한 구현 우선 데이크스트라 소스코드를 보자. private static int d..

image