문제 풀이

[백준] 10807번: 개수 세기 - JAVA (자바)

auyeol 2023. 2. 6. 11:03
728x90

 

 

문제

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

 

10807번: 개수 세기

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

www.acmicpc.net

 

입력할 정수의 개수 N을 입력받은 뒤, 정수를 입력한다. 이후, 정수를 한번 더 입력받아 같은 개수의 정수가 몇 개 있는지 출력하는 문제이다.

 

입력                                    출력
5                                       2
1 2 3 2 1
2

 

------------------------------------------------------------------------------------------------------------------

 

 

풀이

 

(1) Scanner 사용 

 

1) 정수의 개수 입력 후 배열 생성

 

2) for문을 사용하여 배열에 값들을 저장

 

3) 찾을 정수(x)를 입력 받은 뒤, for문 안에 배열의 값과 찾을 정수(x)의 값이 일치하는 경우 count++ 

 

import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();  // 정수의 개수 n 입력
		int array1[] = new int[n];  // 일차원 배열 생성
		int count = 0;		// 동일한 정수의 개수 
		
		for(int i=0;i<array1.length;i++) {
			array1[i] = sc.nextInt(); 		// 배열에 값 저장
			
		}
		
		int x = sc.nextInt();  // 찾을 정수 
		
		for(int i=0;i<array1.length;i++) {
			if(array1[i]==x)  // 배열의 값과 정수가 일치하는 경우 count++
				count++;
		}
		
		System.out.println(count);
		
		sc.close();
	}
}

 

------------------------------------------------------------------------------------------------------------------

 

 

(2) BufferdReader 사용 

 

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


public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
		int n = Integer.parseInt(br.readLine());
		int count = 0; 
		
        	StringTokenizer strtk = new StringTokenizer(br.readLine());
        
		int x = Integer.parseInt(br.readLine());
		
        	for(int i=0;i<n;i++) {
        		if(Integer.parseInt(strtk.nextToken())==x)
        			count++;
        	}
			System.out.println(count);
      	  	br.close();
	}
}

 

찾을 정수를 int형으로 받았기 때문에        // int x = Integer.praseInt(br.readLine());

 

if를 사용할 때에도 앞에 Integer.parseInt를 통해 int형으로 형 변환을 시켜주어야 한다. 

 

728x90