https://www.acmicpc.net/problem/10807
풀이
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());
String same = "";
StringTokenizer st = new StringTokenizer(br.readLine());
String find = br.readLine();
int count = 0;
for (int i = 0; i < n; i++) {
same = st.nextToken();
if (find.equals(same)) {
count++;
}
}
System.out.println(count);
}
}
- 해시 맵을 이용하여 다시 풀었다.
- containsKey(key): 해당 key값이 있는지 확인
- replace(key, value): 해당 key값에 들어있던 value를 새로운 값으로 변경
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());
StringTokenizer st = new StringTokenizer(br.readLine());
int target = Integer.parseInt(br.readLine());
HashMap<Integer, Integer> map = new HashMap<>();
while (st.hasMoreTokens()) {
int i = Integer.parseInt(st.nextToken());
if (map.containsKey(i)) {
map.replace(i, map.get(i) + 1);
} else {
map.put(i, 1);
}
}
System.out.println(map.get(target));
}
}
- 마지막 프린트 부분에서 target과 같은 key값이 없으면 null이 프린트 되는 오류 발생
- getOrDefault(key, defaultValue) 를 이용하여 오류 해결 -> 지정된 키로 매핑된 값이 없는 경우 0을 반환
System.out.println(map.getOrDefault(target, 0));
첫 번째 코드와 두 번째 코드 시간 차이
'백준' 카테고리의 다른 글
[백준 5613번][Java] 계산기 프로그램 (0) | 2023.03.27 |
---|---|
[백준 2830번][Java][비트연산자] 행성 X3 (0) | 2023.03.21 |
[백준 9012번][Java][Stack] 괄호 (0) | 2023.03.20 |
[백준 26008번][Java] 해시 해킹 (0) | 2023.03.17 |
[백준 1158번][Java][LinkedList] 요세푸스 문제 (0) | 2023.03.17 |