▪️ 바구니 N개의 의미 → 1차원 배열의 길이
▪️ 바구니의 번호는 배열의 index number (바구니 번호-1)
▪️ 가장 처음 바구니에는 공이 들어있지 않다 → 빈 배열
▪️ 바구니에는 공을 1개만 넣을 수 있다 → 한개의 index에 한 개의 숫자만 들어갈 수 있음
▪️ M번 공을 넣는다 → 공을 넣는 행위를 M번 반복함 (for문 반복 횟수)
▪️ (Java) 비어있는 배열은 JVM에 의해 기본값 0이 출력됨
▪️ 공을 넣을 때 바구니의 범위를 정한다 → i번 바구니부터 j번 바구니까지 공을 넣는다는 의미
▪️ 정한 바구니에 모두 같은 번호가 적혀있는 공을 넣는다 → i번 바구니부터 j번 바구니까지 k번 공을 넣는다는 의미, 즉 [i-1]~[j-1]까지 k번 공을 배열에 집어 넣음
▪️ 공을 넣을 바구니는 연속되어 있다 → 자료를 연속된 형태로 저장할 수 있는 배열을 사용하라는 의미
▪️ 만약 공이 이미 존재할 경우, 들어있는 공을 빼고 새로 공을 넣는다 → replace
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); //바구니 개수
int M = sc.nextInt(); //공을 넣는 횟수
int[] arr = new int[N];
for(int l=0; l < M; l++){
int i = sc.nextInt();
int j = sc.nextInt();
int k = sc.nextInt();
for(int m = i-1; m < j; m++){ //i~j번 바구니에 k번 공 넣기 반복
arr[m] = k;
}
}
for(int x=0; x < N; x++){
System.out.print(arr[x] + " ");
}
sc.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken()); //바구니 개수
int M = Integer.parseInt(st.nextToken()); //공을 넣는 횟수
int[] arr = new int[N];
for(int l=0; l < M; l++){
st = new StringTokenizer(br.readLine(), " ");
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
for(int m = i-1; m < j; m++){ //i~j번 바구니에 k번 공 넣기 반복
arr[m] = k;
}
}
for(int x=0; x < N; x++){
System.out.print(arr[x] + " ");
}
br.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken()); //바구니 개수
int M = Integer.parseInt(st.nextToken()); //공을 넣는 횟수
int[] arr = new int[N];
for(int l=0; l < M; l++){
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
for(int m = i-1; m < j; m++){ //i~j번 바구니에 k번 공 넣기 반복
arr[m] = k;
}
}
StringBuilder sb = new StringBuilder();
for(int x=0; x < N; x++){
sb.append(arr[x] + " ");
}
System.out.print(sb);
br.close();
}
}
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[] arr = new int[N];
for(int l=0; l < M; l++){
st = new StringTokenizer(br.readLine(), " ");
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
for(int m = i-1; m < j; m++){ //i~j번 바구니에 k번 공 넣기 반복
arr[m] = k;
}
}
for(int x=0; x < N; x++){
bw.write(arr[x] + " ");
}
br.close();
bw.flush();
bw.close();
}
}
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const [N,M] = input[0].split(" ").map(Number);
let arr = new Array(N).fill(0); //길이가 N인 새로운 배열을 생성, 배열의 모든 요소를 0으로 초기화
for(let l=1; l <= M; l++){
let [i,j,k] = input[l].split(" ").map(Number);
for(let m = i-1; m < j; m++){
arr[m] = k;
}
}
console.log(arr.join(" "));
💡 new Array(N) → 길이가 N인 새로운 배열을 생성
❗️배열을 초기화할 때 new Array(N) 단독 사용 시 배열의 크기는 N이지만 모든 요소가 undefined로 채워지게 됨
💡 fill() 메서드 → 배열의 인덱스 범위 내에 있는 모든 요소를 정적 값으로 변경 후 수정된 배열을 반환
fill(value[, start, end])
▪️ value : 배열을 채울 값
▪️ start : 시작 index, 생략 시 0
▪️ end : 끝 index (end는 포함되지 않음)
💡 join() 메서드 → 배열의 모든 요소를 연결해 하나의 문자열로 반환
Array객체.join(구분자)
▪️ 구분자 생략 시 배열의 원소들이 쉼표로 구분됨const arr = ['바람', '비', '물']; console.log(arr.join()); // 바람,비,물 console.log(arr.join('')); // 바람비물 console.log(arr.join('-')); // 바람-비-물
N, M = map(int, input().split())
arr = [0] * N
for l in range(M) :
i, j, k = map(int, input().split())
for m in range(i-1, j) :
arr[m] = k
for x in range(N) :
print(arr[x], end = " ")
[0] * N → 0으로 이루어진 길이가 N인 리스트를 생성하는 구문