문제 : boj4351
String으로 되어 있는 문자열과, 해당 항목에 대한 int를 저장할 수 있어야 한다. HashMap을 사용하면 효율적으로 저장하고, 찾을 수 있다. m개의 단어와 숫자를 받아 HashMap에 단어를 key, 숫자를 value로 저장한다. 그리고 n개를 입력받으면서 띄어쓰기를 기준으로 나누어 HashMap에 해당 단어가 있다면 점수를 더해나가면 된다.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int a = Integer.parseInt(st.nextToken());
HashMap<String, Integer> hm = new HashMap<>();
while (n-->0) {
st = new StringTokenizer(br.readLine());
hm.put(st.nextToken(), Integer.parseInt(st.nextToken()));
}
StringBuilder sb = new StringBuilder();
while (a-->0) {
int sum = 0;
while (true) {
String str = br.readLine();
if (str.equals(".")) break;
st = new StringTokenizer(str);
while (st.hasMoreTokens()) {
String token = st.nextToken();
if (hm.containsKey(token))
sum += hm.get(token);
}
}
sb.append(sum).append('\n');
}
System.out.print(sb);
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
백준 16678 자바 - 모독 (BOJ 16678 JAVA) (0) | 2022.02.21 |
---|---|
백준 18917 자바 - 수열과 쿼리 38 (BOJ 18917 JAVA) (0) | 2022.02.20 |
백준 18294 자바 - Biodiversity (BOJ 18294 JAVA) (0) | 2022.02.18 |
백준 20291 자바 - 파일 정리 (BOJ 20291 JAVA) (0) | 2022.02.17 |
백준 12927 자바 - 배수 스위치 (BOJ 12927 JAVA) (0) | 2022.02.16 |
댓글