10810 - 공넣기알고리즘/백준2023. 8. 17. 20:35
Table of Contents
쉽게 생각하면 간단한 문제이다.
문제를 먼저 이해해보자면 1번부터 순서대로 N번까지 번호가 쓰여진 바구니에 1번부터 N번까지 번호가 적혀있는 공을 집어넣는데,
이 때 공을 넣을때는 반드시 정해진 범위에 같은 번호인 M번의 공을 각각 다른 바구니에 넣고,
그 다음 공을 넣을때는 바구니에 원래 있었던 공은 뺀 뒤에 공을 넣는다.
바구니의 개수를 뜻하는 N길이의 int배열을 생성해주고 공을 넣는 행위를 반복하므로 M만큼 반복문의 조건식을 달아준다.
공을 넣으려는 바구니의 범위와 공의 숫자를 입력받은 뒤,
for(int j = a - 1; j<= b - 1; j++){
arr[j] = c;
}
위 코드에서 바구니의 시작은 1부터 시작하지만 배열의 index는 0부터 시작하기 때문에 a와 b를 각각 1만큼 빼준다.
package boj;
import java.util.Scanner;
public class b10810 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); //바구니의 개수
int M = sc.nextInt(); //공을 넣는 횟수 (만큼반복)
int a = 0; //바구니의 시작범위
int b = 0; //바구니의 끝 범위
int c = 0; //바구니에 넣는 공숫자
int[] arr = new int[N];
for(int i=0; i<M; i++) {
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
for(int j=a-1; j<=b-1; j++) {
arr[j] = c;
}
}
for(int i=0; i<arr.length;i++) {
System.out.print(arr[i] + " ");
}
}
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
5597 - 과제 안 내신 분..? (0) | 2023.08.17 |
---|---|
10813 - 공 바꾸기 (0) | 2023.08.17 |
2562 - 최댓값 (0) | 2023.08.17 |
10818 - 최소, 최대 (0) | 2023.08.17 |
10871 - X보다 작은 수 (0) | 2023.08.17 |
@leegeonwoo :: geonwoo
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!