이전의 문제들은 split() 또는 StringTokenizer로 나누어진 수가 특정한 수로 배정이 된 반면, 이번 문제는 그렇지 않다.
나누어진 각각의 수를 배열에 어떻게 넣을지가 중요한 문제다.
split() 풀이) + 배열 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] str = br.readLine().split(" ");
int v = Integer.parseInt(br.readLine());
int[] num = new int[N];
int cnt=0;
for(int i=0; i<N; i++) {
num[i] = Integer.parseInt(str[i]);
if(v==num[i]) {
cnt++;
}
}
System.out.println(cnt);
}
}
사실 for문 안에서 저장과 if문으로 비교하는 것을 동시에 하기 때문에 배열을 쓰지 않아도 되고,
int num = Integer.parseInt(str[i]); 로 푸는게 더 효율적이다.
StringTokenizer 풀이) + 배열을 이용하지 않은 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int v = Integer.parseInt(br.readLine());
int cnt=0;
for(int i=0; i<N; i++) {
int num = Integer.parseInt(st.nextToken());
if(num==v) {
cnt++;
}
}
System.out.println(cnt);
}
}
'알고리즘 풀이' 카테고리의 다른 글
[백준]10818번: 최소, 최대 - java 풀이 (0) | 2023.04.06 |
---|---|
[백준]10871번: X보다 작은 수 - java 풀이 (0) | 2023.04.05 |
[백준]10952:A+B - 5 - java풀이 (0) | 2023.04.04 |
2439번: 별 찍기 - 2 - java 풀이 (0) | 2023.03.31 |
[백준]2438번: 별 찍기 - java 풀이 (0) | 2023.03.31 |