본문 바로가기
코딩테스트/백준

[백준/10810] 공 넣기 (Java)

by wo__ongii 2024. 12. 24.
728x90

반응형

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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());
        
        int N = Integer.parseInt(st.nextToken()); //바구니 갯수
        int M = Integer.parseInt(st.nextToken()); //공 넣는 횟수
        int[] basket = new int[N];

        //공 넣는 횟수만큼 반복문
        for(int n=0;n<M;n++){
            st = new StringTokenizer(br.readLine());
        
            int i = Integer.parseInt(st.nextToken());
            int j = Integer.parseInt(st.nextToken());
            int k = Integer.parseInt(st.nextToken());
            
            //i번째부터 j번째 바구니에 k번 공 넣기 > 배열이니 시작점은 i-1
            for(int m=i-1;m<j;m++){
                basket[m] = k;
            }
        }
        for(int n=0;n<basket.length;n++){
            bw.write(basket[n]+" ");
        }
        br.close();
        bw.flush();
        bw.close();
    }
}

 

솔직히 문제 자체가 이해안갔다.. 어쨋든 분석은 

1. 바구니 안에 M번 동안 공을 던질 수 있다.

2. 총 N개의 바구니 중 i번째부터 j번째 바구니에 k번호의 공을 한번 씩 던질 수 있다.

3. 바구니에는 공 한개만 넣을 수 있으니 k번호 공을 계속 대입한다.

728x90
반응형