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] + " "); // 배열의 각 요소를 공백을 두고 출력
}
피드백 & 정리
이번 문제를 사용하면서 각 바깥 반복문마다 안쪽 반복문이 실행되므로 이중 반복문이 되고, 이중 반복문은 주로 여러 명령어를 처리하거나, 차원 배열을 처리할 때 사용된 것도 알았으니, 잘 써먹어 보자!

깃 허브
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
반응형