728x90
반응형
1. 숫자 카드(백준 10815번)
https://www.acmicpc.net/problem/10815
▷ 풀이 코드
import java.util.HashMap; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class NumCard { public static void main(String args[]) { Scanner sc = new Scanner(System.in); HashMap<Integer, Integer> hashMap = new HashMap<>(); int n = sc.nextInt(); for(int i=0; i<n; i++) { int input = sc.nextInt(); hashMap.put(input, hashMap.getOrDefault(input, 0) + 1); } int m = sc.nextInt(); StringBuilder sb = new StringBuilder(); for(int i=0; i<m; i++) { int find = sc.nextInt(); sb.append(hashMap.getOrDefault(find, 0)).append(" "); } System.out.println(sb); } }
2. 문자열 집합(백준 14425번)
https://www.acmicpc.net/problem/14425
▷ 풀이 코드
1. scanner로 입력import java.util.HashMap; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class StrSet { public static void main(String args[]) { Scanner sc = new Scanner(System.in); HashMap<String, Integer> hashMap = new HashMap<>(); int n = sc.nextInt(); int m = sc.nextInt(); for(int i=0; i<n; i++) { String input = sc.next(); hashMap.put(input, hashMap.getOrDefault(input, 0) + 1); } StringBuilder sb = new StringBuilder(); int cnt = 0; for(int i=0; i<m; i++) { String find = sc.next(); if(hashMap.containsKey(find)) { cnt++; } } System.out.println(cnt); } }
2. BuffedReader로 입력import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Scanner; public class StrSet2 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); HashMap<String, Integer> hashMap = new HashMap<>(); String inputStr[] = br.readLine().split(" "); int n = Integer.parseInt(inputStr[0]); int m = Integer.parseInt(inputStr[1]); for(int i=0; i<n; i++) { String input = br.readLine(); hashMap.put(input, hashMap.getOrDefault(input, 0) + 1); } int cnt = 0; for(int i=0; i<m; i++) { String find = br.readLine(); if(hashMap.containsKey(find)) { cnt++; } } System.out.println(cnt); } }
이번에는 알고리즘 스터디에서 공부했던 해시맵을 통해 백준 문제 풀이를 해보았습니다!!
해시맵을 사용할 때 getOrDefault을 사용하면 value에 원하는 값을 지정할 수 있네요
이렇듯 해시맵의 내장 함수들을 잘 사용하면 좀 더 문제 풀기 편리할 것 같아요!
더 다양한 문제들을 풀어보면서 문제 풀이 방법들에 대해서 익혀볼게요~
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'문제풀기 > 백준 문제풀이' 카테고리의 다른 글
[알고리즘] 이분 탐색 문제 풀이(백준 2805번, 1654번, 2512번) (0) | 2023.08.24 |
---|---|
[알고리즘] 문자열 문제 풀이(백준 1316번, 1157번, 11721번, 1541번) (0) | 2023.08.18 |
[알고리즘] 데크 문제 풀이(백준 10866번) (2) | 2023.08.10 |
[알고리즘] 큐 문제 풀이(백준 10845번, 1158번, 1966번) (2) | 2023.08.10 |
[알고리즘] 우선순위 큐 문제 풀이 2 (백준 11286번) (0) | 2023.08.10 |