정보
분류 : 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 |