|
์ฝ๋ ์์ฑํ๊ธฐ
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Solution {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> check = new HashMap<>();
for (String s : participant) {
check.put(s, check.getOrDefault(s, 0) + 1);
}
for (String s : completion) {
check.put(s, check.get(s) - 1);
}
Set<String> keySet = check.keySet();
String answer = null;
for (String s : keySet) {
if (check.get(s) == 1) {
answer = s;
}
}
return answer;
}
public static void main(String[] args) {
Solution s = new Solution();
String[] participant = {"leo", "kiki", "eden"};
String[] completion = {"eden", "kiki"};
System.out.println(s.solution(participant, completion));
}
}
Java
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
โข
completion์ ๊ธธ์ด๋ participant์ ๊ธธ์ด๋ณด๋ค 1 ์์ต๋๋ค
1.
Participant, ์ฐธ์ฌํ ์ ์๋ค์ Hash Key์ ์ ์ฅํ๋ฉด์ key๊ฐ ๋ถ๋ฆด๋๋ง๋ค value๋ฅผ +1 ์ฆ๊ฐ์ํต๋๋ค.
โข
getOrDefault ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ, Hash Key๊ฐ ์์ ๊ฒฝ์ฐ ํด๋น Key์ ํจ๊ป ๊ธฐ๋ณธ ๊ฐ 0์ ๋ฐํํ์ฌ ์ ์ฅํฉ๋๋ค.
โฆ
๊ฐ์ด ์กด์ฌํ ๊ฒฝ์ฐ ๊ฐ์ ๋ถ๋ฌ์ +1์ ํ๊ณ ์ ์ฅํฉ๋๋ค.
2.
Completion, ์์ฃผํ ์ ์๋ค์ Key๋ฅผ ์ด์ฉํ์ฌ, ํด๋น Key๋ก ๋ถ๋ฌ์จ ๊ฐ์ -1 ๊ฐ์์ํต๋๋ค.
3.
๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ Hash๋ฅผ ๋๋ฉด์ Value๊ฐ 1์ธ Key๋ฅผ ์ฐพ์๋ด์ด String์ ํด๋น Key๋ฅผ ์ ์ฅํฉ๋๋ค.
a.
์ค๋ณต ์ด๋ฆ์ด ์๋ค๋ ๊ฐ์ ํ์ ์ฐธ์ฌํ ์ ์๋ค์ ๋ชจ๋ 1์ด๋ผ๋ ๊ฐ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
b.
์์ฃผํ ์ ์์ ๊ฒฝ์ฐ ๋ค์ 1์ ๊ฐ์ํ๋ฏ๋ก 0์ ๊ฐ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
c.
์์ฃผํ์ง ๋ชปํ ์ ์๋ง 1์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
4.
Key๋ฅผ ์ ์ฅํ String์ ๋ฐํํฉ๋๋ค.
getOrDefault(Objectย key,ย V DefaultValue)
key : ๊ฐ์ ๊ฐ์ ธ์ค๋ ์์์ ํค
defaultValue: ์ง์ ๋ ํค๋ก ๋งคํ๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๋ฐํ๋์ด์ผ ํ๋ ๊ธฐ๋ณธ ๊ฐ