백준은 꾸준히 풀어보고 있다.
쉬운 문제들은 넘어가고 헷갈렸던 문제들에 대해서만 풀이를 남겨보려한다.
문제
풀이
문제의 난이도는 어렵지 않은 것 같은데, 문제를 이해하는게 시간이 오래걸렸던 것 같다.
처음에, 바구니의 갯수 N과 바구니에 공을 넣는 횟수 M이 주어진다.
바구니에 공을 넣는다는게, 1 ~ N 번호의 바구니에 공을 한번씩 전부 집어넣는다는 의미이다.
둘째 줄부터는 공을 넣는 방식이라고 이해하면 된다.
1 2 3 의 숫자가 주어졌다면, 1번부터 2번 바구니까지 3번공을 전부 집어넣겠다는 것이다.
정리하자면, 공을 M번 넣을건데 각 횟수마다 어떻게 공을 집어넣을지 값을 받아서 계산하는 문제이다.
바구니에는 1개의 공만 들어가기 때문에, 만약 넣어야할 바구니에 공이 들어있다면 공을 교체한다.
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());
StringBuilder sb = new StringBuilder();
int length = Integer.parseInt(st.nextToken());
int cnt = Integer.parseInt(st.nextToken());
int[] arr = new int[length];
Arrays.fill(arr, 0); // 배열을 처음에 전부 0으로 초기화해준다.
for(int i = 0; i < cnt; i++){
st = new StringTokenizer(br.readLine());
// 배열 인덱스가 0부터 시작하므로 -1 해준다.
int from = Integer.parseInt(st.nextToken())-1;
int to = Integer.parseInt(st.nextToken())-1;
int num = Integer.parseInt(st.nextToken());
for(int j = from; j <= to; j++){
arr[j] = num;
}
}
for(int val : arr){
sb.append(val).append(" ");
}
System.out.println(sb.toString().strip());
br.close();
}
}
문제를 이해하고 나면 어렵지 않게 풀 수 있는 문제인 것 같다.
'코딩 테스트 문제 풀이 > 백준' 카테고리의 다른 글
백준 - 구간 합 구하기 5 (11660) (1) | 2025.03.27 |
---|---|
백준 - 구간 합 구하기 4 (11659) (1) | 2025.03.26 |
백준 - 문자열 10809 (0) | 2023.05.21 |
백준 - 입출력과 사칙연산 2257 (0) | 2023.04.27 |