본문 바로가기

코딩 하루 1문제 프로젝트

[백준 10807번 문제] 개수 세기

반응형

문제 설명

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

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

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

 

Java 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 정수의 개수 입력 받기
        int N = scanner.nextInt();
        
        // 정수 배열 생성 및 입력 받기
        int[] numbers = new int[N];
        for (int i = 0; i < N; i++) {
            numbers[i] = scanner.nextInt();
        }
        
        // 찾으려는 정수 입력 받기
        int v = scanner.nextInt();
        
        // 정수 개수 세기
        int count = 0;
        for (int i = 0; i < N; i++) {
            if (numbers[i] == v) {
                count++;
            }
        }
        
        // 결과 출력
        System.out.println(count);
        scanner.close();
    }
}

 

풀이

배열의 선언과 생성에 대해 알아야 풀 수 있는 문제다. 

 

배열을 선언하고 생성하려면 다음과 입력한다. 

 

int[] score;                      // 배열을 선언(배열을 다루기 위한 참조변수 선언)

score = new int [5];     // 배열을 생성(실제 저장공간을 생성) 

 

선언과 생성을 동시에 하면 한줄로 표현이 가능하다. 

 

int[] score = new int[5]; 

 

scanner로 정수의 개수를 입력받는다. 정수의 개수는 배열을 길이를 생성하는 것과 같다. 정수 10을 입력받으면 길이가 10인 배열이 생성된다. 총 10칸의 배열이 생성되는데 각각의 칸에 다시 정수를 채워서 저장한다.  찾으려는 정수를 입력하면 각 칸에 들어가 있는 정수와 비교해서 같은 경우 개수를 증가시켜 출력한다. 

반응형