반응형
써야할 변수가 많으니까 계속 헷갈려서 주석을 달아가면서 풀었다.
1. Scanner를 이용한 방법
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//바구니 개수 및 바구니 번호, 공 번호
int N = sc.nextInt();
//공을 넣는 횟수
int M = sc.nextInt();
int[] num = new int[N];
//M개의 줄에 걸쳐서 공을 넣는 방법
for(int i=0; i < M; i++){
//i번 바구니부터 j번 바구니까지 k번 번호가 적힌 공을 넣는다.
int I = sc.nextInt();
int J = sc.nextInt();
int K = sc.nextInt();
//인덱스는 0부터 시작하므로 I - 1
for(int j = I - 1; j < J; j++){
//K번 번호가 적혀진 공 넣기
num[j] = K;
}
}
for(int k = 0; k < num.length; k++){
System.out.print(num[k] + " ");
}
sc.close();
}
}
2. BufferedReader를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
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[] num = new int[N];
//M개의 줄에 걸쳐서 공을 넣는 방법
for(int i=0; i < M; i++){
StringTokenizer st2 = new StringTokenizer(br.readLine(), " ");
//i번 바구니부터 j번 바구니까지 k번 번호가 적힌 공을 넣는다.
int I = Integer.parseInt(st2.nextToken());
int J = Integer.parseInt(st2.nextToken());
int K = Integer.parseInt(st2.nextToken());
//인덱스는 0부터 시작하므로 I - 1
for(int j = I - 1; j < J; j++){
//K번 번호가 적혀진 공 넣기
num[j] = K;
}
}
for(int k = 0; k < num.length; k++){
System.out.print(num[k] + " ");
}
br.close();
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 5597 - 과제 안 내신 분..? (0) | 2024.02.17 |
---|---|
[백준] 10813 - 공 바꾸기 (0) | 2024.02.16 |
[백준] 2562 - 최댓값 (0) | 2024.02.14 |
[백준] 10818 - 최소, 최대 (0) | 2024.02.13 |
[백준] 10871 - X보다 작은 수 (0) | 2024.02.12 |