import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Hashtable;
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());
// 입력 배열의 size를 정해준다.
StringTokenizer st = new StringTokenizer(br.readLine());
// 입력된 배열의 값을 나눠서 저장한다 (split이랑 비슷한 개념)
int V = Integer.parseInt(br.readLine());
int cnt = 0;
int arr[] = new int [N];
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
//각 입력값을 arr 배열에 넣어준다.
for (int i = 0; i < N; i++) {
if (arr[i] == V) {
cnt++;
}
}
// 배열의 i번째 값이 V랑 같으면 cnt증가
System.out.println(cnt);
}
}
👍 내생각
어제 쪼까 헤맨 문제가 있었는데, 나중에는 scanner함수보다 bufferedReader을 더 많이 쓴다고 한다 (시간초과 때문이라고..)
그래서 나중에 가서 헤매기 보다 빨리 익숙해져야겠다 싶어서 오늘 부지런히 공부해보았다! 생각보다 쉬운 개념이어서 요리조리 따라해보니 괜찮았던거 같다.
일단 HashTable을 사용하라고 해서, 각 값을 ht.key와 value에 맞춰서 add하는것 까지는 해냈는데, 도저히 ht.key값에 따라 value에 접근하는 걸 못하겠더라..
어디 구글에서는 foreach문을 사용하라던데 난 아직 그 개념이 조금 어려웠다. 처음에는 ht.key가 i번째일 때 ht.containsValue가 V이면 cnt ++ 로 구현하려고 했는데 저 "ht.key가 i번째" 이 부분 구현이 불가했다.
1시간 조금 넘게 알아보다가 우선은 그래도 자신있는 배열과 ArrayList 로 고민해보자 싶어서 배열로 시도하였고 성공!
🤔배운내용
1. bufferedReader 사용방법