import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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));
String[] input = br.readLine().split(" ");
int N = Integer.parseInt(input[0]); // 바구니 개수
int M = Integer.parseInt(input[1]); // 공 개수
int[] basket = new int[N]; // 바구니 1 ~ N
for (int i = 0; i < M; i++) { // 공 번호 만큼 반복
String[] ex = br.readLine().split(" ");
int basket1 = Integer.parseInt(ex[0]);
int basket2 = Integer.parseInt(ex[1]);
int ballNum = Integer.parseInt(ex[2]);
for (int j = basket1; j <= basket2; j++) {
basket[j-1] = ballNum; // index 때문에 -1
}
}
for (int i = 0; i < basket.length; i ++) {
bw.write(basket[i] + " "); // 각 바구니 안에 있는 공 번호 저장.
}
bw.flush();
bw.close();
br.close();
}
}
# 입/출력 결과
# 과정
BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
BufferedWriter + OutputStreamWriter 사용해서 출력하기.
String[] input에 입력값 받아서 공백 기준으로 나누어 저장.
int N, int M에 각각 input 값 담기.
int[] basket에 배열 길이를 N으로 생성.
for문 사용해서 계산
: int i = 0; i < M 만큼 반복.
: 반복 때마다 String[] ex에 입력값 받아서 공백 기준으로 나눈 다음 저장.
: int basket1, int basket2, int ballNum에 각각 ex 값 저장.
: 중첩 for문을 사용해서 입력받은 첫번째 바구니와 두번째 바구니에 ballNum을 저장.
그 다음 for문에서 basket.lengh에 맞추어 반복하여 bw.write() 사용해서 바구니에 담긴 공 모아두기.
bw.flush() 사용해서 출력하고 데이터 비우기
bw와 br에 .close() 사용해서 종료해주기.
# 느낀 점
처음에 문제를 이해하는데 어려움이 있었다. 입력, 출력 글과 예제 입력, 예제 출력을 보고 문제를 이해하는데 도움이 되었다. (내가 이해력이 부족한건가...)
이번 문제는 for문을 많이 사용했다. 그리고 배열을 사용하기 위해서 생각을 많이 하게 되었다.
중간에 basket을 최종 출력할 때 0이 맨 앞에 와서 다시 생각해보니 컴퓨터는 0부터 시작하기 때문에 -1을 해줘야한다는 걸 알아차렸다.