# 문제
- 주소: https://www.acmicpc.net/problem/10807
- 총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하기.
# 코드
▼ 1번 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine()); // 몇 개 정수 입력 받을 지.
String[] input = br.readLine().split(" "); // 입력 받을 정수 배열 선언과 초기화.
int V = Integer.parseInt(br.readLine()); // 어떤 정수를 찾을지.
int[] numArr = new int[N];
int count = 0;
for (int i = 0; i < N; i++) {
numArr[i] = Integer.parseInt(input[i]);
if (numArr[i] == V) {
count ++;
}
}
bw.write(count + "\n");
bw.flush();
bw.close();
br.close();
}
}
▼ 2번 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine()); // 몇 개 정수 입력 받을 지.
String[] input = br.readLine().split(" "); // 입력 받을 정수 배열 선언과 초기화.
int V = Integer.parseInt(br.readLine()); // 어떤 정수를 찾을지.
long count = (int) Arrays.stream(input)
.limit(N) // N개까지만 사용
.filter(x -> Integer.parseInt(x) == V)
.count();
bw.write(count + "\n");
bw.flush();
bw.close();
br.close();
}
}
▼ 3번 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int[] numbers = Arrays.stream(br.readLine().split(" "))
.mapToInt(Integer::parseInt)
.toArray();
int V = Integer.parseInt(br.readLine());
int count = (int) Arrays.stream(numbers, 0, N)
.filter(x -> x == V)
.count();
bw.write(count + "\n");
bw.flush();
bw.close();
br.close();
}
}
# 입/출력 결과
▼ 1번 코드 결과

▼ 2번 코드 결과

▼ 3번 코드 결과

# 과정
▼ 1번 코드 과정
- BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
- BufferedWriter + OutputStreamWriter 사용해서 출력하기.
- int N에 입력 값을 받아서 숫자로 형변환하기.
- String[] input에 공백 기준으로 나누어서 값을 저장하기.
- int V에 어떤 정수를 찾을지 값 받아서 숫자로 형변환해서 저장하기.
- int[] numArr을 N개 만큼 미리 만들기.
- int count 만들기.
- for문 사용해서 계산하기.
- : N번만큼 반복하는데, numArr[i]로 하여 input[i]를 형변환하여 저장하기.
- : if문을 사용해서 numArr[i]에 V와 동일한 값이 있으면 count에 증가 연산을 해준다.
- .write()를 사용해서 count를 출력하기.
- bw와 br을 .close() 해주기.
▼ 2번 코드 과정
- BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
- BufferedWriter + OutputStreamWriter 사용해서 출력하기.
- int N에 입력 값을 받아서 숫자로 형변환하기.
- String[] input에 공백 기준으로 나누어서 값을 저장하기.
- int V에 어떤 정수를 찾을지 값 받아서 숫자로 형변환해서 저장하기.
- int[] numArr을 N개 만큼 미리 만들기.
- int count 만들기.
- for문 사용해서 계산하기.
- : N번만큼 반복하는데, numArr[i]로 하여 input[i]를 형변환하여 저장하기.
- : if문을 사용해서 numArr[i]에 V와 동일한 값이 있으면 count에 증가 연산을 해준다.
- .write()를 사용해서 count를 출력하기.
- bw와 br을 .close() 해주기.
▼ 3번 코드 과정
- BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
- BufferedWriter + OutputStreamWriter 사용해서 출력하기.
- int N에 입력 값을 받아서 숫자로 형변환하기.
- int[] numbers에 Arrays를 활용하기.
- : .stream() 사용하여 입력받은 값을 공백 기준으로 나누고,
- : .mapToInt() 사용하여, 입력받은 값을 숫자형으로 타입 변환시켜서 다음으로 넘긴다.
- : 형변환된 요소들을 .toArray()를 사용하여 배열로 저장한다.
- int V에 어떤 정수를 찾을지 입력값 받아서 저장하기.
- int count에 Arrays 사용.
- : .stream()을 사용하여 입력받은 numbers를 0부터 N개까지
- : .filter()을 사용하여 순회하는 요소가 V와 같은지 조건을 통해 있으면 true 반환.
- : true마다 .count() 하기.
# 느낀 점
- 배열을 사용하다보니 어색해서 익숙해지는데 시간이 걸렸다.
- 타입을 배열로 지정해서 하는 것과 Arrays를 활용해서 하는 방법을 찾아가며 했는데, 익숙하지 않아서 정리하고 공부하는데 시간이 이틀이나 시간이 걸렸다. 그래도 재밌는 시간이었다.
- 아무래도 모르는 것 투성이라서 처음에는 힘들지만 계속 사용하다보면 실력이 늘지 않을까 생각을 한다. 힘내자!

'코딩 테스트' 카테고리의 다른 글
| [코딩테스트] 백준 10818번: 최소, 최대 (0) | 2025.05.20 |
|---|---|
| [코딩테스트] 백준 10871번: X보다 작은 수 (0) | 2025.05.19 |
| [코딩테스트] 백준 10951번: A+B - 4 (0) | 2025.05.16 |
| [코딩테스트] 백준 10952번: A+B - 5 (0) | 2025.05.16 |
| [코딩테스트] 백준 2439번: 별 찍기 - 2 (0) | 2025.05.15 |