JAVA - 백준 [BAEK JOON]/1차원 배열

[백준] 10810번 : 공 넣기 - JAVA (자바)

_ys2 2024. 6. 3. 14:27
728x90
반응형

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


문제

출처 - 백준 알고리즘


문제 이해

 

  • N개의 바구니가 있고, M개의 명령을 통해 특정 범위의 바구니에 공을 넣습니다.
  • 각 명령은 세 개의 정수 I, J, K로 구성되며, I부터 J까지의 바구니에 K번 공을 넣습니다.
  • 모든 명령을 처리한 후, 각 바구니에 들어 있는 공의 번호를 출력합니다.

 


문제 풀이

import java.util.Scanner;

public class Main { 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);    
        int N = sc.nextInt();   
        int[] arr = new int[N]; 
        int M = sc.nextInt();   

        for (int i = 0; i < M; i++) {   
            int I = sc.nextInt();
            int J = sc.nextInt();
            int K = sc.nextInt();

            for (int j = I - 1; j < J; j++) {   
                arr[j] = K;
            }
        }
        for (int k = 0; k < arr.length; k++) {  
            System.out.print(arr[k] + " ");
        }

    }
}

 


코드 풀이

Scanner sc = new Scanner(System.in);    // 사용자의 입력을 받기 위해 Scanner 객체를 생성
int N = sc.nextInt();   // N을 입력, 바구니의 개수를 나타냄
int[] arr = new int[N]; // 바구니를 나타내는 배열 생성, 크기는 N
int M = sc.nextInt();   // M을 입력, 명령의 개수를 나타냄

 

for (int i = 0; i < M; i++) {   // M번 반복하면서 각 명령을 처리
    int I = sc.nextInt();  // 시작 인덱스 I를 입력 받음
    int J = sc.nextInt();  // 끝 인덱스 J를 입력 받음
    int K = sc.nextInt();  // 바구니에 넣을 값 K를 입력 받음

 

for (int j = I - 1; j < J; j++) {   // 시작 인덱스부터 끝 인덱스까지의 바구니에 값을 넣는 반복문
    arr[j] = K;  // 바구니에 K 값을 넣음
}

 

for (int k = 0; k < arr.length; k++) {  // 모든 명령을 처리한 후, 바구니 배열의 내용을 출력하는 반복문
    System.out.print(arr[k] + " ");  // 배열의 각 요소를 공백을 두고 출력
}

 


피드백 & 정리

이번 문제를 사용하면서 각 바깥 반복문마다 안쪽 반복문이 실행되므로 이중 반복문이 되고, 이중 반복문은 주로 여러 명령어를 처리하거나, 차원 배열을 처리할 때 사용된 것도 알았으니, 잘 써먹어 보자!

깃 허브

https://github.com/CHUNYOUNGSANG/Algorithm/blob/main/algorithm/src/baekjoon/java/one_dimensional_array_stage/No10810_PutTheBallIn.java

 

Algorithm/algorithm/src/baekjoon/java/one_dimensional_array_stage/No10810_PutTheBallIn.java at main · CHUNYOUNGSANG/Algorithm

알고리즘 공부방. Contribute to CHUNYOUNGSANG/Algorithm development by creating an account on GitHub.

github.com

 

반응형