위의 문제는 N개의 항을 가진 수열에 M번의 방법을 거쳐 값을 대입하여 결과값을 도출하는 문제이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer str = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(str.nextToken());
int[] A = new int[N];
int M = Integer.parseInt(str.nextToken());
int i = 0, j = 0, k = 0;
for (int I = 0; I < M; I++) {
str = new StringTokenizer(br.readLine(), " ");
i = Integer.parseInt(str.nextToken());
j = Integer.parseInt(str.nextToken());
k = Integer.parseInt(str.nextToken());
for (int z = i - 1; z < j; z++) {
A[z]=k;
}
}
for (int I = 0; I < N; I++) {
System.out.print(A[I] + " ");
}
}
}
아직 BufferedWriter의 사용이 익숙치 않아 System.out.print()
함수를 사용하여 결과값을 도출하였다.
수열의 i번째 자리부터 j번째 자리까지 k값을 대입하는 방식으로 진행되며, 배열의 값들이 띄워쓰기로 구분되어 출력되도록 코드를 위와 같이 구성해주었다.