💡문제 풀이/백준 - JAVA

개수 세기 / 10807

뇌 리셋은 기본이지 2023. 11. 20. 16:22

정보

분류 : 1차원 배열

 

문제

문제링크

 

풀이

  • 풀이 1 ( Scanner + println() ) → 220ms
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] arr = new int[sc.nextInt()];
		
		for(int i = 0 ; i < arr.length ; i++) {
			int num = sc.nextInt();
			arr[i] = num;
		};
		
		int cnt = 0;
		int v = sc.nextInt();		// 찾고자 하는 숫자
		
		// 배열길이만큼 반복해서 v와 동일한 숫자 찾기
		for(int i = 0 ; i < arr.length ; i++) {
			if(arr[i] == v) {	// 배열 각 방에 있는 숫자가 v와 동일하다면
				cnt++;		// cnt 1씩 증가
			}
		}
		System.out.println(cnt);
	}
}
  • 풀이 2 (BufferedReader + BufferedWriter + StringTokenizer ) → 148ms
import java.io.*;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		// InputStream : 자바의 가장 기본이 되는 입력 스트림
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// OutputStreamWriter : 자바의 가장 기본이 되는 출력 스트림
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int[] arr = new int[Integer.parseInt(br.readLine())];
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		
		// 배열 각 방에 입력한 숫자를 차례대로 집어넣기
		for(int i = 0 ; i < arr.length ; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}
		
		int cnt = 0;
		int v = Integer.parseInt(br.readLine());	// 찾고자 하는 숫자
		
		// 배열길이만큼 반복해서 v와 동일한 숫자 찾기
		for(int j = 0 ; j < arr.length ; j++) {
			if(arr[j] == v) {		// 배열 각 방에 있는 숫자가 v와 동일하다면
				cnt++;			// cnt 1씩 증가
			}
		}
		br.close();

		bw.write(cnt + " ");
		
		bw.flush();
		bw.close();
	}
}

풀이 후기

StringTokenizer 풀이 방식이 아직 익숙치 않아 헤맸다😅

입력 행 내용
1 입력한 숫자로 배열의 길이를 결정
2 빈칸 기준으로 배열의 길이만큼 숫자를 나열
3 두번째 행에 입력한 숫자들에서 찾고자 하는 숫자를 입력

배열 내에 있는 숫자 중 세 번째 행에 지정된 숫자를 찾기 위해 for문을 통해 배열의 길이만큼 반복한다. 만약 배열 내에 지정한 숫자와 동일한 숫자가 있다면 cnt 변수를 1씩 증감시켜 출력시켜주었다.

'💡문제 풀이 > 백준 - JAVA' 카테고리의 다른 글

최소, 최대 / 10818  (0) 2023.11.20
X보다 작은 수 / 10871  (1) 2023.11.20
A+B - 4 / 10951  (1) 2023.11.17
A+B - 5 / 10952  (1) 2023.11.17
별 찍기 - 2 / 2439  (0) 2023.11.17