Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 범용 선택자
- 쌍방향 연결리스트
- 인접 형제 선택자 결합
- visibility : hidden
- 배열의 오름차순
- 가상 요소 선택자
- 양방향 연결리스트
- Array.from()
- 백준알고리즘
- map()
- 배열의 내림차순
- disabled
- 단방향 연결리스트
- display : none
- classList.contains(string)
- Em
- CSS
- indexOf
- Sort
- Link
- 객체
- 배열과 연결리스트의 차이
- invalid assignment left-hand side
- 일반 형제 선택자 결합
- for..of
- innerhtml
- nth-child()
- 등차수열의 항 찾기
- 고차함수
- filter()
Archives
- Today
- Total
프론트엔드 센트럴파크 (☞゚ヮ゚)☞
백준알고리즘_2460 본문
이 기차는 다음 조건을 만족하면서 운행된다고 가정한다.
- 기차는 역 번호 순서대로 운행한다. → 기차역은 10개
- 출발역에서 내린 사람 수와 종착역에서 탄 사람 수는 0이다. → 표 순서대로 -(빼고) +(더한다)
- 각 역에서 현재 기차에 있는 사람보다 더 많은 사람이 내리는 경우는 없다.
- 기차의 정원은 최대 10,000명이고, 정원을 초과하여 타는 경우는 없다.
각 역에서 내린 사람 수와 탄 사람 수가 빈칸을 사이에 두고 첫째 줄부터 열 번째 줄까지 역 순서대로 한 줄에 하나씩 주어진다. → 빈칸을 기준으로 내린사람의 수와 탄 사람의 수를 구분한다.
▶ 반복문을 10번 돌릴 것이다.
▶ 빈 배열을 만들고 배열 안에 각 역마다 최종으로 남아있는 승객의 수를 넣을 것이다.
▶ 총 10개를 비교해서 최종으로 기차에 사람이 제일 많은 수를 뽑아낸다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// Scanner를 이용하여 사용자에게 값을 입력 받는다.
// Scanner a = new Scanner(System.in);
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int total = 0;
int[] train = new int[10]; // train이라는 배열을 10크기로 하겠다.
for (int i = 0; i < 10; i++) {
// 띄어쓰기(공백) 기준으로 문자열 분리
StringTokenizer st = new StringTokenizer(bf.readLine(), " ");
// StringTokenizer는 int로 변환 해주어야 한다.
int a = Integer.parseInt(st.nextToken()); // 내린사람
int b = Integer.parseInt(st.nextToken()); // 탄사람
// += 계속 더해주면서 값을 바꾸기
total += -a + b;
// train의 [i]번째는 곧 total이다.
train[i] = total;
}
int Max = Arrays.stream(train).max().getAsInt();
System.out.println(Max);
bf.close();
======================================================
int max = train[0];
for (int num : train) {
if (num > max) {
max = num;
}
}
System.out.println(max);
bf.close();
======================================================
// Array 클래스의 sort(정렬)을 활용한 방법
Arrays.sort(train); // 배열 정렬
// 최대값 출력
System.out.println(train[train.length - 1]);
bf.close();
}
}
위에서 부터 순서대로 사용된 메모리와 시간
시간은 for 반복문 사용이 제일 짧았고, 메모리는 stream 메소드를 사용한것이 적었다.
'Algorism' 카테고리의 다른 글
백준알고리즘_2742 (0) | 2022.02.09 |
---|---|
백준알고리즘_9316 (0) | 2022.02.09 |
백준알고리즘_2609 (0) | 2022.02.09 |
백준알고리즘_10870 (0) | 2022.01.23 |
백준 알고리즘_1000 (0) | 2022.01.16 |
Comments