[99ํด๋ฝ] 9์ผ์ฐจ ๋ฌธ์ : ์ ์ฃผ ๋ฃ๊ณ ๋ ธ๋ ๋งํ๊ธฐ

์ ์ฃผ ๋ฃ๊ณ ๋ ธ๋ ๋งํ๊ธฐ ๋ฌธ์ ๋ก hashmap์ ์ฌ์ฉํด์ ํ๋ฉด ๋๋ค. ๋ค๋ง ์ด๋ ค์ด๊ฑด....์ ๋ ฅ๊ฐ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ???
์ ํ ์ฌํ์ฉ ํ ์ ์๋ ํ๋์ฝ๋ฉ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์๋๋ฐ ๋ณดํต ๋น๊ธฐ๋ ๋ ๋ฒจ์ ๊ฒฝ์ฐ ์ฃ์ง์ผ์ด์ค๋ฅผ ํ์ธํ ์ผ์ด ๊ฑฐ์ ์์ด์ ์ด๋ ๊ฒ ํธ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. (ํ์ง๋ง ๋ณ๋ก ์ข์ง ์์ ๋ฐฉ๋ฒ์...) ๋ฆฌํธ์ฝ๋ ์ญ์ ๋ณดํต easy ๋ ๋ฒจ์ ๊ฒฝ์ฐ brute force ๋ฐฉ๋ฒ์ผ๋ก ํ ์ ์๊ณ ๋ฌธ์ ์์ ์ด๋ป๊ฒ ํ์ด์ผ ํ๋์ง ๋ค ์๋ ค์ฃผ๋ ํธ์ด๋ค. ๊ทธ๋์ ๊ตฌํ ์ฐ์ตํ๊ธฐ์๋ ๋ฆฌํธ์ฝ๋๊ฐ ์ ๋ง ๋์์ด ๋ง์ด ๋๋ค. ์ง๊ธ ์ด ๋ฌธ์ ์์ ํค๋ ํด์๋งต์ ์ฌ์ฉํ๋ ๊ฑด๋ฐ ์ ๋ ฅ๊ฐ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ ์ด๋ ค์์ ๋์ด๋๊ฐ ๋ ๋์ ๋๋์ด๋ค. ํ๋ก๊ทธ๋๋จธ์ค์์๋ ๋ฌธ์ ๊ฐ ๋์ค๋ฉด ์ข๊ฒ ๋๋ฐ ๊ณ์ ๋ฐฑ์ค๋ง ๋์ค๋ค..
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] nm = sc.nextLine().split(" ");
int N = Integer.parseInt(nm[0]);
int M = Integer.parseInt(nm[1]);
Map<String, String> hm = new HashMap<>();
for(int i = 0 ; i < N; i++) {
String[] s = sc.nextLine().split(" ");
String song = s[1];
String ryhme = s[2] + s[3] + s[4];
if(hm.containsKey(ryhme)) {
hm.put(ryhme, "?");
}else {
hm.put(ryhme, song);
}
}
for(int i = 0; i < M; i++) {
String[] s = sc.nextLine().split(" ");
String ryhme = s[0] + s[1] + s[2];
if(hm.containsKey(ryhme)) {
System.out.println(hm.get(ryhme));
}else {
System.out.println("!");
}
}
}
}