๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/42576
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค.
๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช ์ด์ 100,000๋ช ์ดํ์ ๋๋ค.
- completion์ ๊ธธ์ด๋ participant์ ๊ธธ์ด๋ณด๋ค 1 ์์ต๋๋ค.
- ์ฐธ๊ฐ์์ ์ด๋ฆ์ 1๊ฐ ์ด์ 20๊ฐ ์ดํ์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช ์ด์ธ์ด ์์ ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
participant | completion | return |
["leo", "kiki", "eden"] | ["eden", "kiki"] | "leo" |
["marina", "josipa", "nikola", "vinko", "filipa"] | ["josipa", "filipa", "marina", "nikola"] | "vinko" |
["mislav", "stanko", "mislav", "ana"] | ["stanko", "ana", "mislav"] | "mislav" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- "leo"๋ ์ฐธ์ฌ์ ๋ช ๋จ์๋ ์์ง๋ง, ์์ฃผ์ ๋ช ๋จ์๋ ์๊ธฐ ๋๋ฌธ์ ์์ฃผํ์ง ๋ชปํ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- "vinko"๋ ์ฐธ์ฌ์ ๋ช ๋จ์๋ ์์ง๋ง, ์์ฃผ์ ๋ช ๋จ์๋ ์๊ธฐ ๋๋ฌธ์ ์์ฃผํ์ง ๋ชปํ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #3
- "mislav"๋ ์ฐธ์ฌ์ ๋ช ๋จ์๋ ๋ ๋ช ์ด ์์ง๋ง, ์์ฃผ์ ๋ช ๋จ์๋ ํ ๋ช ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ํ๋ช ์ ์์ฃผํ์ง ๋ชปํ์ต๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
// ์ฐธ๊ฐ์์ ์ด๋ฆ์ Key๋ก, ์ด๋ฆ์ ๊ฐ์๋ฅผ Value๋ก ์ ์ฅ
HashMap<String, Integer> map = new HashMap<>();
// ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ participant ๋ฐฐ์ด์ ์ํ
for (String p : participant) {
// ๊ฐ ์ฐธ๊ฐ์์ ์ด๋ฆ์ HashMap์ ์ ์ฅ
// getOrDefault ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ์ด๋ฏธ HashMap์ ์กด์ฌํ๋ ์ด๋ฆ์ด๋ผ๋ฉด ๊ฐ์ ์ฆ๊ฐ
// ์กด์ฌํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ 0์ผ๋ก ์ค์ ํ๊ณ +1
map.put(p, map.getOrDefault(p, 0) + 1);
}
// ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ completion ๋ฐฐ์ด์ ์ํ
for (String c : completion) {
// ๊ฐ ์์ฃผ์์ ์ด๋ฆ์ Value -1
map.put(c, map.get(c) -1);
}
// ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ HashMap์ ์ํ
for (String key : map.keySet()) {
// ๋ง์ฝ Value ๊ฐ์ด 0์ด ์๋ key(์ฐธ๊ฐ์ ์ด๋ฆ)์ด ์๋ ๊ฒฝ์ฐ
if (map.get(key) != 0) {
// answer์ Key ๊ฐ ์ ์ฅ
answer = key;
}
}
// answer ๋ฐํ
return answer;
}
}
๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ์๊ฐํ ๋ฐฉํฅ
- HashMap์ ๋ํ ๊ฐ๋ ์ด ์์ด์ ๋จผ์ ๊ฐ๋ ๊ณต๋ถ๋ฅผ ํ๋ค.
- ๊ทธ ๋ค์ HashMap์ ์ฐธ๊ฐ์์ ์ด๋ฆ์ Key๋ก ์ด๋ฆ์ ๊ฐ์๋ฅผ Value๋ก ๋ฃ์๋ค.
- ๋ค์ ์์ฃผ์๋ฅผ ํ์ธํ๋ฉด์ Value ๊ฐ์ -1 ํด์ฃผ๊ณ ์ต์ข ์ ์ผ๋ก Value๊ฐ 0์ด ์๋ Key ๊ฐ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ผ๋ก ์งํํ๋ค.
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ๐ต ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2025.04.07 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํฐ์ผ๋ชฌ (3) | 2025.04.04 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] H-index (0) | 2025.04.02 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๊ฐ์ฅ ํฐ ์ (0) | 2025.04.01 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๊ธฐ๋ฅ๊ฐ๋ฐ (1) | 2025.03.29 |