728x90
반응형
https://www.acmicpc.net/problem/10807
10807번: 개수 세기
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거
www.acmicpc.net
1. 문제 풀이 방법
입력받은 문자열은 공백으로 구분되어져 있으므로 분리한 후 배열에 저장하고 입력된 V 와 일치하면 cnt 변수를 1씩 증가시킨다.
(1) 방법 1
- 반복문을 사용하여 개수 찾기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n =sc.nextInt(); // 정수의 개수
sc.nextLine();
String[] str = sc.nextLine().split(" ");
int v = sc.nextInt(); // 찾으려고 하는 정수 v
sc.nextLine();
int cnt = 0;
for (int i = 0; i < n; i++) {
if (str[i].equals(Integer.toString(v))) {
cnt += 1;
}
}
System.out.println(cnt);
}
}
(2) 방법 2
- HashTable을 사용하여 개수 구하기
import java.util.Hashtable;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 정수의 개수 N
sc.nextLine();
String[] str = sc.nextLine().split(" ");
int v = sc.nextInt(); // 찾으려고 하는 정수 V
sc.nextLine();
Hashtable<String,Integer> ht = new Hashtable<>(); //Hashtable 생성
// Hashtable 에 데이터 추가
// 만약 입력된 키 값에 value 값이 없다면 0을 반환
// 입력된 키 값에 value 값이 존재한다면 1을 추가하여 덮어쓰기
for (int i = 0; i < n; i++) {
ht.put(str[i], ht.getOrDefault(str[i],0)+1);
}
// int 형으로 선언하게 되면 값이 없을 시 오류 발생하면 프로그램 종료됨
// null 값이 들어갈 수 있는 Integer 형으로 count 생성
Integer count = ht.get(Integer.toString(v));
if (count != null) {
System.out.println(count);
} else {
System.out.println(0);
}
}
}
반응형
'Coding Test Study > Backjoon' 카테고리의 다른 글
[Coding/Backjoon] 계산기 프로그램 (0) | 2023.11.27 |
---|---|
[Coding/Backjoon] 2830번 행성 X3 (0) | 2023.11.20 |
[Coding/Backjoon] 9012번 괄호 (0) | 2023.11.20 |
[Coding/Backjoon] 1021번 회전하는 큐 (0) | 2023.11.19 |
[Coding/Backjoon] 25556번 포스택 (0) | 2023.11.14 |