코테문제

[백준] 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