300x250
https://www.acmicpc.net/problem/10807
문제
분석
첫째 줄에 N 개의 정수
N 개만큼 정수 입력(공백으로 나눔)
세 번째 줄에 입력으로 주어진 N개의 정수와 같은 정수가 몇 개 인지 결과를 출력
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = 0; // b 와 일치할시 갯수를 올리는 변수
int N = sc.nextInt();
int[] arr = new int[N]; // 배열 생성, 길이는 N만큼
for(int i = 0; i < N; i++) {
arr[i] = sc.nextInt(); // 배열에 입력한 정수들 넣어주기
}
int b = sc.nextInt(); // [문제] 입력 세번째 줄 정수
for(int j = 0; j < arr.length; j++){ // 배열 길이만큼 반복문 돌리면서 변수 b 와 같은
if(b == arr[j]){ // 숫자 찾기. 같으면 count 변수 1씩 증가
count++;
}
}
System.out.println(count);
}
}
기본적인 배열 문제 이네요.
Scanner로 풀어보았습니다. 주석을 참고해 주세요.
풀이 2
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int count = 0;
int[] arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());;
for(int i = 0; i < N; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
int b = Integer.parseInt(br.readLine());
for(int j = 0; j < arr.length; j++){
if(b == arr[j]) {
count++;
}
}
System.out.println(count);
br.close();
bw.flush();
bw.close();
}
}
BufferedReader로 입력받고 StringTokenizer로 띄어쓰기(공백)까지 입력받아 주었다.
뒤에 , " " 하지 않아도 자동으로 띄어쓰기를 기준으로 파싱 한다.
제출 이미지를 보시면 Scanner(아래), Buffered(위) 성능 차이를 보실 수 있습니다.
BufferedReader와 StringTokenizer 정의나 왜 사용하는지 궁금하신 분들은 봐주세요.
300x250
'Progamming > BAEK JOON > 백준의 알고리즘' 카테고리의 다른 글
[백준] 10818번 : 최소, 최대 - JAVA (0) | 2023.03.07 |
---|---|
[백준] 10871번 : X보다 작은 수 - JAVA 배열 (0) | 2023.03.07 |
[백준] 10951번 : A+B - 4 - JAVA (0) | 2023.03.06 |
[백준] 10952번 : A+B - 5 - JAVA (0) | 2023.03.03 |
[백준] 2439번 : 별찍기 - 2 - JAVA (0) | 2023.03.02 |