백준 문제 풀이/백준 (C)

C 백준 10810 공 넣기 (1차원배열)

gamja00 2024. 6. 29. 22:15

 

https://www.acmicpc.net/problem/10810

 


문제

  1. 1 ~ N 개의 번호가 매겨진 바구니.
  2. 1 ~ N 번이 적힌 공.
  3. 처음 바구니에는 공 X, 바구니에는 공을 1개만 넣을 수 있음.
  4. 공을 M번 넣으려고 할 때. 공을 넣을 바구니를 정해 모든 같은 번호가 적힌 공을 넣음. (바구니에 공이 들어있을 때는 들어있던 공을 빼고 새 공을 넣음. 공을 넣을 바구니는 연속.)
  5. 첫째 줄에 N(1 <= N <= 10) M(1 <= M <=100)
  6. 둘째 줄에 i번 바구니부터 j번 바구니까지 k번 번호가 적힌 공을 넣음. (2 5 6은 2번 바구니부터 5번 바구니까지에 6번 공을 넣는다.)
  7. 1 ~ N번 바구니에 들어있는 공의 번호를 공백으로 구분해 출력. 공이 들어있지 않은 바구니는 0을 출력.

 

완성 코드

#include<stdio.h>

int main(void) {
	int N, M;
	int result[100] = {0, }; // 모든 배열을 0으로 초기화.
	int i, j, k;

	scanf_s("%d %d", &N, &M);
	
	for (int n = 0; n < M; n++) { // M번 공을 넣음
		scanf_s("%d %d %d", &i, &j, &k); // i = 첫 바구니, j = 마지막 바구니 ,k = 공 번호
		for (i; i <= j; i++) {
			result[i - 1] = k; // i ~ j 번 바구니에 k가 적힌 공을 넣음
		}
	}
	
	for (int i = 0; i < N; i++) {
		printf("%d ", result[i]);
	}
	return 0;
}