본문 바로가기

Programming/알고리즘

[백준] 10807 - 개수 세기 - JAVA[자바]

 

배열이 주어진다.

그중 "같은 것을 찾는" 조건  => 배열 과 숫자를 비교하자.

 

 

1. BufferedReader 로 input을 받는다. (Scanner보다 성능 좋음)

2. 첫번째 입력줄은 배열의 길이를 뜻한다. => int N = Integer.parseInt(br.readLine());으로 받자

3. Array를 생성해서 두번째 줄 배열 입력을 받자 => int[] arr = new int[N]

4. 공백으로 입력을 받는다 -> StringTokenizer로 받는다.

5. array에 입력을 넣어준다. 

for(int i = 0; i<arr.length; i++){
            arr[i] = Integer.parseInt(st.nextToken());
        }

 

6. 3번째줄 입력은 검사할 숫자를 받는다.  즉, 해당 숫자와 같은 숫자를 찾는다

7. cnt; 변수를 만들어주고, 배열을 돌면서 같은 숫자의 갯수를 찾는다.

for(int i = 0; i<arr.length; i++){
            if(arr[i]==searchNum){
                cnt++;
            }
        }

 

완성된 코드

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
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());
        
        //array생성
        int[] arr = new int[N];
        
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        //숫자 array에 넣기
        for(int i = 0; i<arr.length; i++){
            arr[i] = Integer.parseInt(st.nextToken());
        }
        
        int searchNum = Integer.parseInt(br.readLine());
        int cnt = 0; // searchNum과 일치할 시 갯수 올리는 변수
        
        for(int i = 0; i<arr.length; i++){
            if(arr[i]==searchNum){
                cnt++;
            }
        }
        System.out.print(cnt);
        
    }
}

 


- 정리

크게 어려울것 없이 배열을 사용할 줄 알면 된다.

 

알고리즘을 복잡하게 해서 배열을 돌면서 처리하는 어려운 로직은 발생하지 않았다.