🔺 문제
2565번: 전깃줄
첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[][] wire = new int[N + 1][2];
int[] dp = new int[N + 1];
for(int i = 1 ; i <= N ; i++) {
st = new StringTokenizer(br.readLine(), " ");
wire[i][0] = Integer.parseInt(st.nextToken());
wire[i][1] = Integer.parseInt(st.nextToken());
dp[i] = 1;
}
// A 전봇대 기준 오름차순 정렬
Arrays.sort(wire, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] - o2[0];
}
});
for(int i = 1 ; i <= N ; i++) {
for(int j = 1 ; j < i ; j++) {
if(wire[j][1] < wire[i][1]) {
dp[i] = Math.max(dp[i], dp[j] + 1);
}
}
}
int max = 0;
for(int i : dp) {
max = Math.max(max, i);
}
System.out.println(N - max);
}
}
|
cs |
✅ 해결 아이디어
✔ DP (Bottom-Up)
- 전체 전선 개수 - 설치 가능 개수 = 철거 개수
→ 여기서 최대한 설치 가능한 개수 구하기 (= LIS)
→ 정렬된 A를 기준으로 B에 연결된 값들에서 LIS하기
(A 전봇대의 탐색 기준값을 중심으로 B에 연결 시, 이전에 B에 연결된 전봇대 값보다 커야 함)
🔺 다른 풀이들
- 최고의 설명,,, Comparator 정렬 까지 알려주심,,, (복습용)
[백준알고리즘-JAVA]2565번 풀이(전깃줄) - 초보도 이해하는 풀이
안녕하세요 인포돈 입니다. 백준 알고리즘 2565번 풀이입니다. * 참고사항 - 개발환경은 eclipse을 기준으로 작성되었습니다. - java언어를 이용하여 문제를 풀이합니다. - 알고리즘 문제는 풀이를 보
infodon.tistory.com
- 클래스를 따로 만드셔서 푸심
백준 2565 전깃줄 (Java,자바)
이번에 풀어본 문제는 백준 2565번 전깃줄 입니다.
velog.io
[BOJ] 백준 2565번 전깃줄 자바(java) 코드 :: LIS(Longest Increasing Sequence) 찾기
BOJ 2565번 전깃줄 문제 자바(java) 풀이 랭크 : 실버1 백준 2565번 전깃줄 문제 정리 교차하는 전깃줄을 없애서 전깃줄이 교차하지 않도록 하려고 한다. 남아있는 모든 전깃줄이 서로 교차하지 않게
hoho325.tistory.com
💬 느낀 점
우와.. 다른 LIS 문제들도 풀어봐야겠다....
이렇게 응용이 된다니...
스스로 아이디어 생각해서 풀라고 하면... 오만년이 걸릴 것 같다...
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 풀이 참고.. 항상 감사드리는,,,,
[백준] 2565번 : 전깃줄 - JAVA [자바]
www.acmicpc.net/problem/2565 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되
st-lab.tistory.com
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 1874번: 스택 수열 (0) | 2023.06.04 |
---|---|
[백준/JAVA] 9251번: LCS (0) | 2023.06.04 |
[백준/JAVA] 11054번: 가장 긴 바이토닉 부분 수열 (0) | 2023.06.04 |
[백준/JAVA] 12865번: 평범한 배낭 (0) | 2023.06.03 |
[백준/JAVA] 11053번: 가장 긴 증가하는 부분 수열 (0) | 2023.06.02 |