본문 바로가기
알고리즘/백준 문제 풀이

[BOJ/백준] 10810번 공 넣기 - [c/c++] 풀이

by 미니상미니 2023. 3. 28.
반응형

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

 

10810번: 공 넣기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이

www.acmicpc.net

 

 

 

 


  • 문제


해설

1번 ~n번까지의 바구니가 존재하며 m개의 줄에 걸쳐 i, j, k가 순서대로 들어온다.
i번 ~ j번의 바구니에 k라는 숫자를 넣으며
바구니에 들어간 마지막 숫자를 출력한다. 단 숫자가 없으면 0을 출력한다.

 

1 ≤ N ≤ 100 이므로 배열의 인덱스는 101로, 값은 0으로 초기화 한다. (인덱스를 100으로 초기화시 0 ~ 99까지의 인덱스만 존재)

m개의 줄에 걸쳐 i, j, k를 받은 후 i번 ~ j번의 바구니에 k를 삽입한다

 

마지막으로 1 ~ n번까지의 바구니에 담긴 수를 출력한다.

배열은 0으로 초기화 했으므로 따로 처리할 필요는 없다.

 

코드

c

#include <stdio.h>

int main() {

  int n, m;
  int arr[101] = { 0, };
  int a, b, c;

  scanf("%d %d", &n, &m);

  for(int i = 0; i < m; i++) {
    scanf("%d %d %d", &a, &b, &c);
    for(int k = a; k <= b; k++) {
      arr[k] = c;
    }
  }

  for(int i = 1; i <= n; i++) {
    printf("%d ", arr[i]);
  }

  return 0;
}

 

c++

#include <iostream>

using namespace std;

int main() {

  int n, m;
  int arr[101] = { 0, };
  int a, b, c;

  cin >> n >> m;

  for(int i = 0; i < m; i++) {
    cin >> a >> b >> c;
    for(int k = a; k <= b; k++) {
      arr[k] = c;
    }
  }

  for(int i = 1; i <= n; i++) {
    cout << arr[i] << ' ';
  }

  return 0;
}

 

 

 

 

 

반응형

댓글