[단계별로 풀어보기] 10807번 개수 세기 (1차원 배열)

Jun_Gyu·2023년 3월 1일
0

BackJoon Online Judge

목록 보기
1/18
post-thumbnail

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt(); // 배열의 총 길이값 입력 (입력1)
		int[] array = new int[N]; // 배열의 길이를 적용

		for (int i = 0; i < array.length; i++) {
			int num = sc.nextInt(); // 배열값 대입 (입력2)
			array[i] = num;
		}

		int v = sc.nextInt(); // 출력하려는 정수 v 입력 (입력3)
		int vcount = 0; // 정수 카운트용 변수
		
		for (int i = 0; i < array.length; i++) {
			if (v == array[i]) { // 입력된 v와 같은 값이 배열에 존재하면 vcount++
				vcount++;
			}
		}
		sc.close();
		System.out.println(vcount); // 카운트값 출력

	}
}

처음에는 배열에 들어가는 값이 0부터 9까지만 되는줄 알고 단순히 배열을 2개 생성하여

배열1에는 입력받은 값을 저장하는 용도로,
배열2에는 0,1,2,3...번째 자리에 각각 반복문을 사용하여배열1[i]값을 넣으려고 했었으나


( 코드로 표현하자면배열2[배열1[i]]++; ),


두번째, 세번째 줄에 입력되는 값들은 모두 -100≤N≤100 의 범위를 가진다는 조건때문에 위의 방법을 사용할 수 없어서 간단히 if (v == array[i]) 조건문으로 카운트가 1씩 반복되도록 코드를 구성하였다.


하지만 위의 경우 Scanner 함수를 사용하였기 때문에 시간이 다소 오래걸린다.
다음문제부터는 'BufferedReader'를 사용하여 걸리는 시간을 단축하도록 하자.


profile
시작은 미약하지만, 그 끝은 창대하리라

0개의 댓글