Algorithm/나머지 문제들

[Baekjoon/JAVA] 백준 10810번 공 넣기

양선규 2023. 6. 27. 20:05
728x90
반응형

문제
입/출력

 

1번~N번의 바구니가 있다.

1번~N번의 공이 있다. 공 갯수는 제한이 없다.

i번부터 j번까지의 바구니에, k번이 적힌 공을 넣는다.

이 과정은 총 M번 진행되며, 만약 바구니에 공이 이미 있을 경우 새로운 공으로 교체된다.

입니다.

 

결국 각 바구니에 마지막으로 남아있는 공이 몇번 공인지 출력해야 합니다.

 

 

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));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		st = new StringTokenizer(br.readLine()," ");
		
		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());
		int arr[] = new int[n];
		
		for(int i=0; i<m; i++) {
			st = new StringTokenizer(br.readLine()," ");
            
			int start = Integer.parseInt(st.nextToken());
			int end = Integer.parseInt(st.nextToken());
			int number = Integer.parseInt(st.nextToken());
			
			for(int j=(start-1); j<=(end-1); j++) {
				arr[j] = number;
			}
		}
		for(int k=0; k<arr.length; k++) {
			sb.append(arr[k] + " ");
		}
		System.out.println(sb);
        
		br.close();
	}
}

 

바구니의 갯수인 n 만큼의 배열을 만든 후,

for문으로 m 만큼 반복하며 배열의 start~end 위치에 number를 저장하였고,

마지막으로 배열의 각 자리에 저장된 값을 출력하였습니다.

728x90
반응형