Search

๊น€์ค€ํ˜ธ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
900
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
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: ์ง€์ •๋œ ํ‚ค๋กœ ๋งคํ•‘๋œ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ ๋ฐ˜ํ™˜๋˜์–ด์•ผ ํ•˜๋Š” ๊ธฐ๋ณธ ๊ฐ’