-
[ 10807 ] 개수 세기 - array, vector알고리즘/BOJ 2021. 7. 26. 17:40
< array, vector > - < solve등급 >
[ 10807 ]
개수 세기
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.
:: 입력
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.
:: 출력
첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.
- try 1
: 벡터에 다 집어넣고 타겟 숫자가 있는지 확인하려다가
숫자의 범위가 크지 않아서 그냥 미리 배열을 만들어 두고 풀었음
아이디어
다른 사람들 풀이를 보니까
100짜리 배열 하나를 만들고 거기에 숫자를 저장해서 순회하면서 풀었음
메모리를 덜 먹는 방식
정답 코드
#include <string> #include <vector> #include <iostream> #include <algorithm> using namespace std; #define endl "\n" int plus_num[101] = { 0, }; int minus_num[101] = { 0, }; int main() { int n = 0; cin >> n; for (int i = 0; i < n; i++) { int k = 0; cin >> k; if (k >= 0) { plus_num[k]++; } else { minus_num[-k]++; } } int target = 0; cin >> target; if (target >= 0) { cout << plus_num[target]; } else { cout << minus_num[-target]; } }
다른 정답 코드
#include <stdio.h> int main(void){ int A[100], N, v, cnt = 0; scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%d", &A[i]); } scanf("%d", &v); for (int j = 0; j < N; j++) { if (A[j] == v) cnt++; } printf("%d", cnt); }
'알고리즘 > BOJ' 카테고리의 다른 글
[ 1919 ] 에너그램 만들기 - array, vector (0) 2021.07.26 [ 10808 ] 알파벳 개수 - array, vector (0) 2021.07.26 [ 11024 ] 더하기 4 - 입출력 (0) 2021.07.26 [ 11023 ] 더하기 3 - 입출력 (0) 2021.07.26 X - [ 11719 ] 그대로 출력하기 2 - 구현 (0) 2021.07.23