BackJoon_10807

위서연·2023년 4월 17일

BackJoon

목록 보기
3/5

백준 10807

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 사용방법

0개의 댓글