프로그래밍/코딩 테스트 연습

[백준] 10807번 : 개수 세기 (4단계) (C++)

w_w 2024. 1. 12. 10:23

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

 

10807번: 개수 세기

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

www.acmicpc.net

 


 

문제

 

 

 

 

해석

 

입력받은 정수가 어떤 배열 안에 있는지 확인하는 문제이고, 여러 방법이 있지만 입력받는 배열의 크기가 작기 때문에 단순히 반복문으로 비교해서 풀어도 될 것 같습니다.

 

기본적인 아이디어인 "배열을 입력받는다." → "입력받은 정수가 있으면 카운트한다"  → "최종적으로 카운트를 출력한다"로 풀 수 있습니다.

 

 

 

 

 

 

풀이

 

 

 

1. 배열을 입력받는다. (추가로 변수 선언)

 

int T,N,s[100];
cin >> T;

for (int i = 0; i < T; i++) 
	cin >> s[i];

 

T가 배열의 크기, 문제의 N을 의미합니다.

 

 

2. 입력받은 정수를 배열의 수와 비교해 카운트한다.

 

cin >> N;

int check = 0;

for (int i = 0; i < T; i++)
	if (s[i] == N)
		check++;

 

 

3. 최종적으로 카운트를 출력한다.

 

cout << check;

 

 

완성된 코드는 다음과 같습니다.

 

#include<iostream>

using namespace std;

int main() {
	int T,N,s[100];
	cin >> T;

	for (int i = 0; i < T; i++) 
		cin >> s[i];
	cin >> N;

	int check = 0;

	for (int i = 0; i < T; i++)
		if (s[i] == N)
			check++;

	cout << check;
}

 

 

 


 

 

정리

 

 

반복문을 이용해 배열 안에 특정 문자가 있는지 확인하고, 카운트하는 연습을 할 수 있는 문제입니다.