코테문제
[백준] B2460
dekoms
2023. 9. 29. 23:19
https://www.acmicpc.net/problem/2460
2460번: 지능형 기차 2
최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다.
www.acmicpc.net
# 아이디어
내린 사람: down, 탄 사람: up
- 기차에 가장 사람이 많은 순간은 사람이 내리기 전, 즉 모든 사람이 탔을 때이다. 따라서 total = -down +up으로 계산됨.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
down | 0 | 3 | 28 | 17 | 21 | 11 | 12 | 4 | 0 | 21 |
up | 32 | 13 | 25 | 5 | 20 | 0 | 12 | 2 | 8 | 0 |
total | 32 | 42 |
i > 0일 때, total[i] = total[i-1] - down[i] + up[i]를 만족함.
💯💯💯
최대값 찾는 방법
1. Arrays.sort()
int[] arr = {1, 2, 3, 4, 5};
Arrays.sort(arr);
System.out.println("최소값: " + arr[0]); // 1
System.out.println("최대값: " + arr[arr.length - 1]); // 5
2. Math 함수
int[] arr = {1, 2, 3, 4, 5};
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int i : arr) {
min = Math.min(min, i);
max = Math.max(max, i);
}
System.out.println("최소값: " + min); // 1
System.out.println("최대값: " + max); // 5
3. stream()
int[] arr = {1, 2, 3, 4, 5};
int min = Arrays.stream(arr).min().getAsInt(); // 최소값 찾기
int max = Arrays.stream(arr).max().getAsInt(); // 최대값 찾기
System.out.println("최소값: " + min); // 1
System.out.println("최대값: " + max); // 5