2020/04 6

백준 - 1707 이분그래프 (JAVA)

문제 : https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 E(1≤E≤200,000)가 빈 칸을 사이에 두고 순서대로 주어진다. 각 정점에는 1부터 V까지 차례로 번호가 붙어 있다. 이어서 둘째 줄부터 E개의 줄에 걸쳐 간선에 대한 정보가 주어지는데, 각 줄에 인접한 두 정점의 번호가 빈 칸을 사이에 두고 주어 www.acmicpc.net 문제설명 이분 그래프 문제이다. 이분그래프 문제는 BFS로 구현하는 것이 정석이다. 알고리즘 1. 삽입 삭제가 빈번하면 Li..

LIS(최장 증가 수열 ) - 백준 11053 (JAVA)

서론 최장 수열은 주어진 수열에서 오름차순으로 정렬된 가장 긴 부분수열을 찾는 문제이다. 일반적으로 길이를 저장하는 테이블을 만들어 해결한다. 이럴경우 이중반복문을 사용하기에 시간복잡도는 O(N^2)이 된다. 또 다른 방법은 Binary search를 이용하여 O(NlogN)의 시간복잡도를 갖는 방법도 있다. 구현 코드 memo[0] = 1; for (int i = 1; i arr[j] && memo[i]

5650. [모의 SW 역량테스트] 핀볼 게임 (JAVA)

문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제설명 자료구조를 잘 활용하여 풀어야하는 시뮬레이션인다. N의 크기가 100이기 때문에 값이 0인 자리에서 출발하여 모든 경우의 수를 살펴봐도 O(N^2)이다. 아마 평균적으로는 장애물들이 있기 때문에 훨씬 더 빠를 것이다. 알고리즘 1. 0이 있는곳 즉 아무 장애물이 없는 구역을 queue에 넣는다. 2. 하나씩 poll 하며 4방향으로 조건에 맞게 탐색을 진행한다. 3. 웜홀 같은 경..

1949. [모의 SW 역량테스트] 등산로 조성(JAVA)

문제 :https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq&categoryId=AV5PoOKKAPIDFAUq&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제설명 기본적인 DFS문제지만 공사 할 수 있는 것을 잘 유의하며 접근해야한다. 알고리즘 1. DFS로 가장 높은 봉우리부터 4방향 탐색을 시작한다. 2. 만약 다음 갈 수 있는 봉우리 - 현재 높이 가 공사할 수 있는 높이보다 작아야 공사가 가능하다. 3. 2번의 경우 공사 한 것을 체크 한뒤 DFS를 진행..

플로이드 워셜 백준 11404 (JAVA)

서론 Floyd Warshall 알고리즘은 최단 경로를 구하는 방법중 하나이다. 동적계획법으로 접근하는데 시간 복잡도는 O(N^3)이다. 최단경로 구하는 알고리즘인 dijkstra와 비교하자면 간선 수가 많으면 Floyd 가 빠를 수 있다. 시작 정점이 정해져 있으면 dijkstra가 당연히 빠르다. 음의 가중치가 존재한다면 dijkstra는 사용할 수 없지면 Floyd는 사용가능하다. 구현 코드 for i in vertex // 경유 for j in vertex //시작점 if i == j continue for k in vertex //도착점 if i == j or j==k continue arr[j][k] = min(arr[j][i] + arr[i][k] , arr[j][k]) 문제에 적용 문제 :..

백준 2839번 설탕배달 (JAVA)

문제 : https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 www.acmicpc.net 문제설명 단순 로직, 메모이제이션, 완전탐색 등 푸는 방법은 여러가지이다. 단순 로직은 빠르지만 문제가 달라지면 또 다른 로직..

728x90