#1. String타입 배열
#2. int 타입 배열
#HashMap
#1. String타입 배열
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
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 타입의 배열을 선언하면 입력한 여러개의 숫자를 한번에 다 넣을 수 있음
String[] input = br.readLine().split(" ");
int a = Integer.parseInt(br.readLine()); //비교할숫자!
int cnt = 0;
for(int i=0; i<N; i++){
//대신 a와 비교할때는 int타입의 변수b를 선언해주어 값을 담아 비교해야 함.
int b = Integer.parseInt(input[i]);
if( b == a ){
cnt++;
}
}
System.out.println(cnt);
}
}
#2. int 타입 배열
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
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());
//N개의 공간을 가진 정수타입 배열 input 선언
int[] input = new int[N];
//int타입의 변수를 선언해주면 for문을 통해 하나씩 값을 넣어줘야 한다.
for(int i=0; i<N; i++){
input[i] = Integer.parseInt(st.nextToken());
}
int a = Integer.parseInt(br.readLine()); //비교할 숫자 입력받음
int cnt = 0; //배열 안에 같은 숫자가 몇개 있는지 카운트
for(int i=0; i<N; i++){
if( input[i] == a ){
cnt++;
}
}
System.out.println(cnt);
}
}
#HashMap
HashMap은 자바에서 사용할 수 있는 데이터 저장 방법 중 하나로,키-값(key-value) 쌍으로 데이터를 저장하는 해시 테이블 기반의 컬렉션이다. 특정 정보를 기억할 때 활용할 수 있다.
사전(Dictionary)에 비유하면, 사전의 '단어'와 그 '뜻'을 기록하는 것과 비슷하다.
'키'는 단어에 해당하고, '값'은 그 단어의 뜻에 해당한다. 특정 단어(키)를 찾으면 그에 맞는 뜻(값)을 쉽게 찾을 수 있다.
또 다른 예로 학생들의 이름과 학번을 기록할 때, 학번이 '키'이고 그에 해당하는 이름이 '값'이라고 생각하면 된다. 학번을 알면 쉽게 이름을 찾을 수 있다. 이렇게 HashMap을 사용하면 데이터를 관리하고, 필요한 정보를 빠르게 찾을 수 있다.
HashMap을 이용해서 문제를 풀어보면,
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
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()); //배열안에 들어갈 정수의 개수
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 a = Integer.parseInt(br.readLine()); // 찾으려는 정수 a
// HashMap을 사용하여 같은 정수 갯수 카운트
HashMap<Integer, Integer> countMap = new HashMap<>();
for (int i = 0; i < N; i++) {
int num = arr[i];
countMap.put(num, countMap.getOrDefault(num, 0) + 1);
}
// a와 같은 정수의 갯수 출력
int count = countMap.getOrDefault(a, 0);
System.out.println(count);
}
}
반응형
'BAEKJOON_study' 카테고리의 다른 글
[백준_JAVA] 10871번_X보다 작은 수 (0) | 2023.10.01 |
---|---|
[백준_JAVA] 10951번_A+B - 4 (0) | 2023.09.21 |
[백준_JAVA] 11021번_A+B-7 (0) | 2023.09.18 |
[백준_JAVA] 15552번 빠른 A+B (0) | 2023.09.15 |
[백준_JAVA] 25304 영수증 풀이 (1) | 2023.09.14 |