https://www.acmicpc.net/problem/10810
문제
분석하다
i, j, k = 바스켓 I의 K 번호가 있는 공을 바스켓 J에 넣습니다.
첫 번째 바구니에는 공이 없습니다.
설명
import java.util.Scanner;
public class Main {
public static void main(String() args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int() arr = new int(N);
int M = sc.nextInt();
for(int i = 0; i < M; i++) {
int I = sc.nextInt();
int J = sc.nextInt();
int K = sc.nextInt();
for(int j = I - 1; j < J; j++) {
arr(j) = K;
}
}
for(int k = 0; k < arr.length; k++) {
System.out.print(arr(k) + " ");
}
}
}
이 문제는 스캐너로 해결되었습니다.
배열의 인덱스는 0부터 시작하므로 I – 1을 수행해야 합니다.
솔루션 2
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String() args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine()); // StringTokenizer로 N과 M, " "(공백)으로 구분
int N = Integer.parseInt(st.nextToken());
int() arr = new int(N);
int M = Integer.parseInt(st.nextToken());
for(int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine()); // StringTokenizer로 " "(공백)으로 구분
int I = Integer.parseInt(st.nextToken());
int J = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
for(int j = I - 1; j < J; j++) {
arr(j) = K;
}
}
for(int k = 0; k < arr.length; k++) {
bw.write(arr(k) + " ");
}
br.close();
bw.flush();
bw.close();
}
}
이것은 BufferedReader가 해결하는 문제입니다.
성능면에서는 스캐너보다 빠르므로 연습해 보아야 합니다.
스캐너를 사용하지 않는 이유
BufferedReader, BufferedWrite가 궁금하시다면
참고하십시오.
2023.02.16 – (Knowledge Base/BAEK JOON > 백준 알고리즘) – (백준) 제15552호: Fast A+B – JAVA, BufferedReader, BufferedWriter
(백준) #15552: 빠른 A+B – JAVA, BufferedReader, BufferedWriter
https://www.acmicpc.net/problem/15552 No. 15552: Fast A+B 테스트 케이스의 T 수는 첫 번째 줄에 있습니다.
T는 최대 1,000,000입니다.
다음 T-행에는 각각 두 개의 정수 A와 B가 주어집니다.
A와 B는 1보다 크거나 같고 1,000보다 작거나 같습니다.
www.acmic
encodingnight.tistory.com