개인공부/백준코딩연습

[1차원 배열] - 개수 세기

도원결의 2024. 8. 12. 00:08

문제 

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

 

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

 

첫 번째 풀이 

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int n = Integer.parseInt(br.readLine());
		int total = 0;
		
		
		List<Integer> a = new ArrayList<>();
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		
		for(int i = 0 ; i <= n-1; i ++) {		
				a.add(Integer.parseInt(st.nextToken()));
		};
		
		int find = Integer.parseInt(br.readLine());
		
		for(int i =0 ; i <= n-1; i ++) {
			if ( a.get(i) == find ) {
					total++;
			}
		}
			bw.write(String.valueOf(total));
			bw.flush();
			bw.close();
			br.close();
    }
}

 

 

 

두 번째 풀이 : chatGPT의 조언 참고하여 수정

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int n = Integer.parseInt(br.readLine());
		int[] numbers = new int[n];
	
		StringTokenizer st = new StringTokenizer(br.readLine()," ");	
		for(int i = 0 ; i < n ; i ++) {		
				numbers[i]=(Integer.parseInt(st.nextToken()));
		};
		
		int find = Integer.parseInt(br.readLine());
	
		int total = 0;
		for(int i =0 ; i <= n-1; i ++) {
			if ( numbers[i] == find ) {
					total++;
			}
		}
		
			bw.write(String.valueOf(total));
			bw.close();
			br.close();
    }
}