개수 세기
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 256 MB | 174666 | 106339 | 88615 | 61.542% |
문제
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.
출력
첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.
예제 입력 1 복사
11
1 4 1 2 4 2 4 2 3 4 4
2
예제 출력 1 복사
3
예제 입력 2 복사
11
1 4 1 2 4 2 4 2 3 4 4
5
예제 출력 2 복사
0
문제 자체는 입력으로 주어지는 배열에서 V값보다 같은 수의 개수를 찾아 출력하면 되는 간단한 문제이다.
입력은 세줄로 나뉘어서 받아야 한다 :
첫 번째 줄은 배열의 크기
두 번째 줄은 배열에 들어갈 정수 N개가 주어진다.
세 번째 줄은 배열에서 찾아야 할 정수 V가 주어진다.
입력될 값이 N(1 ≤ N ≤ 100) 와 X(-100 ≤ X ≤ 100)여서 받을 데이터는 많지 않지만.
Arrays의 함수들을 연습해보려고, BufferedReader를 사용하기로 했다.
import java.io.*;
import java.util.Arrays;
public class CountingNumbers {
public static void main(String[] args) throws Exception{
// 입력값 받을 준비
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 첫 번째 배열의 크기
int a = Integer.parseInt(br.readLine());
// 두 번째 배열에 들어갈 요소들을 split을 사용하여 String 배열로 저장
String[] tmp = br.readLine().split(" ");
// Arrays의 stream을 활용하여 tmp 배열에 들어간 요소들을 int로 형변환
int[] N = Arrays.stream(tmp)
.mapToInt(Integer::parseInt)
.toArray();
// 세 번째 찾아야할 V값 저장
int V = Integer.parseInt(br.readLine());
// 찾아야할 값이 1인데 일전에 받아놓은 배열 N의 순서가 뒤죽박죽이라
// 처음부터 끝까지 찾아야 한다면 오래 걸린다.
// 오름차순으로 정렬한다.
Arrays.sort(N);
// 개수 카운팅
int count = 0;
for(int i=0; i<a;i++){
if(N[i] < V) { // N[i]의 값이 V보다 작을 경우 넘어간다.
continue;
} else if(N[i] == V) { // N[i]의 값이 V랑 같을 경우 count증가
count++;
} else {
break; // 만약 V 개수 찾기가 끝나 N[i]의 값이 V보다 클 경우 for문을 일찍 끝낸다.
}
}
System.out.println(count);
}
}
'공부 > 코딩 테스트' 카테고리의 다른 글
[Java] LeetCode 20. Valid Parentheses (0) | 2025.04.03 |
---|---|
[Java] Long의 바이너리 값 팰린드롬 구하기 (0) | 2025.04.02 |
[Java] N번째 거듭제곱 수열 구하기 (0) | 2025.04.02 |
[Java] 백준 15964 이상한 기호 (0) | 2025.03.30 |
[Java] 백준 10871번 : X보다 작은 수 (0) | 2025.03.29 |