관리 메뉴

코딩 기록 저장소

[백준/Java] 10807번: 개수 세기 본문

백준/1차원 배열 (완료)

[백준/Java] 10807번: 개수 세기

KimNang 2023. 5. 3. 16:19

문제 정보

제목 : 개수 세기

번호 : 10807번

사용 언어 : Java

문제 링크

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

 

10807번: 개수 세기

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

www.acmicpc.net

 

시간 제한 메모리 제한
1 초 256 MB

 

문제

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

 

입력

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

 

출력

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

 

입출력 예제


나의 풀이

BufferedReader을 이용해 총 3줄을 입력받을 겁니다. 먼저 첫 번째 줄에는 정수의 개수 N을 입력받아 정수형으로 변환합니다. 두 번째 줄에는 정수를 입력받아 Token으로 나누어 저장합니다. 세 번째 줄에는 찾으려고 하는 정수 v를 입력받아 정수형으로 변환합니다. num 배열도 생성합니다. 이때 길이는 N으로 정해줍니다. 이제 정수들을 배열에 저장합니다. N번 반복하는 for루프를 이용해 num배열에 Token을 하나씩 불러와 정수형으로 변환하여 배열에 저장합니다. 반복이 끝나면 count 변수를 선언하여 N번 반복하는 for루프를 통해 배열의 원소와 v를 비교하여 같으면 count를 증가시킵니다. 반복이 끝나면 count 변수를 출력합니다.

 

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

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());
      StringTokenizer st = new StringTokenizer( br.readLine() );
      int v = Integer.parseInt(br.readLine());
      int[] num = new int[N];
      
      //정수를 배열에 저장
      for(int i = 0; i < N;i++) {
    	  num[i] = Integer.parseInt(st.nextToken());
      }
      
      //찾으려고 하는 정수 v와 배열 원소 하나씩 비교
      int count = 0;
      for(int i = 0; i < N;i++) {
    	  if ( num[i] == v){
    		  count++;
    	  }
      }
      bw.write(count+"\n");
      
      bw.flush();
      bw.close();
      br.close();
   }   
}