[백준 | 10810번] 공넣기

728x90
https://www.acmicpc.net/problem/10810

📝 나의풀이

import java.util.Scanner;

public class Main {
    
	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		int N = scanner.nextInt();//바구니 범위
		int M = scanner.nextInt();//공을 넣을 횟수
		
		int[] NArr = new int [N]; //배열
		
		for(int i=0; i<M; i++) {
			int I = scanner.nextInt(); //시작할 바구니
			int J = scanner.nextInt(); //종료할 바구니
			int K = scanner.nextInt(); //공번호
			
			for(int j=I-1; j<J; j++) {
				NArr[j]=K; 
				}
		}
		
		for(int k=0; k<NArr.length;k++) {
			System.out.print(NArr[k]+" ");
		}
		
	}
}
  • 예제 입력 1번을 예로 드는 경우
    5개의 바구니가 있고, 4줄의 입력을 받는다.
    첫 번째 입력 받았을 때에는 1번 바구니에서 2번 바구니까지 3번 공을 넣고
    두 번째 입력 받았을 때에는 3번 바구니에서 4번 바구니까지 4번 공을 넣는다.
    세 번째 입력 받았을 때에는 1번 바구니에서 4번 바구니까지 1번 공을 넣는다.
    네 번째 입력 받았을 때에는 2번 바구니에서 2번 바구니까지 2번 공을 넣은 뒤,
    배열을 출력하는 형식이다.

  • 바구니에 공이 이미 있는 경우에는 들어 있는 공을 빼고 새로 공을 넣으면 되니,
    배열에서는 새로 들어온 값을 덮어씌워버리면 된다.
  • 바구니, 공을 넣을 횟수, 배열을 선언 해 준 다음
    M번만큼 I(시작할 바구니), J(종료할 바구니), K(공 번호)를 입력 받을 수 있도록 for문을 만들어 준다.
    시작할 바구니, 종료할바구니를 이용하여 for문을 만들어준다.
    이 때 for문에서는 시작할 바구니-1을 해 준다.
  • 👉 배열은 0부터 시작하기 때문에 for문은 아래와 같이 작성된다.
   for (int j- 시작할바구니 -1 ; j<종료할바구니 ; j+ {}
  • 마지막으로 배열 전체를 출력하면 된다.
728x90