촉촉한초코칩

[백준] 10807 (개수 세기) c언어 본문

Algorithm

[백준] 10807 (개수 세기) c언어

햄친구베이컨 2023. 1. 3. 16:29

문제

총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.

출력

첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.

 

#include <stdio.h>

int main() {
  int a;
  scanf("%d", &a);
  int b[100] = {0,};

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

  int c, sum = 0;
  scanf("%d", &c);
  for(int i=0; i<a; i++) {
    if(b[i] == c)
      sum += 1;
  }

  printf("%d\n", sum);
}
  • a : 배열 개수
  • b : 배열
  • c : 찾을 값
  • sum : 배열에 c가 몇 개 있는지 합계

 

보완

> 배열의 값을 100으로 선언해두는 것보다 배열을 동적 할당하는 걸로 수정하기 

#include <stdio.h>
#include <stdlib.h>

int main() {
  int a;
  scanf("%d", &a);
  int *b;
  b = calloc(a, sizeof(int));

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

  int c, sum = 0;
  scanf("%d", &c);
  for(int i=0; i<a; i++) {
    if(b[i] == c)
      sum += 1;
  }

  printf("%d\n", sum);
  free(b);
}