문제 : https://www.acmicpc.net/problem/10810

풀이방법


도현이가 바구니에 공을 넣는 문제입니다. 도현이는 N개의 바구니를 가지고 있고 그 중에서 M개의 바구니에 공을 넣으려고 합니다. 그 M개의 바구니에서는 몇번부터 몇번 바구니에 어떤 번호의 공을 넣을 것인지 정합니다. 처음에 저는 List로 구현하면 되겠다고 생각을 하였으나, index에 접근해야 하고 처음에 1번 바구니에 2번을 넣었다가 나중에 3번을 넣으면 덮어 씌워야 하므로 List가 아닌 int형 배열을 이용하여 구현하였습니다.

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
import java.io.*;
import java.util.StringTokenizer;

public class BOJ10810 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

StringTokenizer st1 = new StringTokenizer(bf.readLine()," ");
int N = Integer.parseInt(st1.nextToken());
//List<Integer> list = new ArrayList<>(N);
int[] intArr = new int[N];
int M = Integer.parseInt(st1.nextToken());


for(int p=0;p<M;p++){
st1 = new StringTokenizer(bf.readLine()," ");
int i = Integer.parseInt(st1.nextToken());
int j = Integer.parseInt(st1.nextToken());
int k = Integer.parseInt(st1.nextToken());
for(int m=i-1;m<j;m++){
//list.add(k);
intArr[m] = k;
}

}

for(int i=0;i<intArr.length;i++)
System.out.print(intArr[i]+" ");
}
}