๐ 1. ๋ฌธ์ ์ค๋ช





๐ก 2. ํ์ด๊ณผ์
๋ฌธ์ ์์ ๋งค๊ฐ๋ณ์๋ ์ด์ฉ์ ID๊ฐ ๋ด๊ธด `id_list`, ๊ฐ ์ด์ฉ์๊ฐ ์ ๊ณ ํ ์ด์ฉ์์ ID๊ฐ ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด `report`, ๊ทธ๋ฆฌ๊ณ ์ ์ง ๊ธฐ์ค์ด ๋๋ ์ ๊ณ ํ์ `k` ์ด๋ค.
๊ตฌํ๊ณ ์ ํ๋ ๊ฒ์ ๊ฐ ์ ์ ๋ณ๋ก ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ๋ฉ์ผ์ ๋ฐ์ ํ์๋ฅผ ๋ฐฐ์ด ํ์์ผ๋ก ๋ฆฌํดํ๋ ๊ฒ์ด๋ค.
์ด๊ฒ์ Canva๋ก ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.

- muzi๋ฅผ ์ ๊ณ ํ ์ฌ๋ : apeach (1)
- frodo๋ฅผ ์ ๊ณ ํ ์ฌ๋ : muzi, apeach (2)
- apeach๋ฅผ ์ ๊ณ ํ ์ฌ๋ : ์์ (0)
- neo๋ฅผ ์ ๊ณ ํ ์ฌ๋ : muzi, frodo (2)
ํด์๋งต์ผ๋ก ํธ๋ ๋ฌธ์ ๋ผ๋ ๊ฑธ ์ ์ ์๋ค.
ํค๋ ์ ๊ณ ๋ฅผ ๋นํ ์ ์ , ๊ฐ์ ์ ๊ณ ํ ์ ์ ๋ก ๊ตฌ์ฑํ๋ฉด ๋๋ค.
์ด ๋ ๋ฌธ์ ์ `ํ ์ ์ ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ๊ณ ํด๋ ์ ๊ณ ํ์๊ฐ 1ํ๋ก ์ฒ๋ฆฌ๋๋ค`๋ ์กฐ๊ฑด์ด ์๋ค. ์ฆ, ํด์๋งต์ value ๊ฐ์ ์ค๋ณต์ด ์์ผ๋ฉด ์๋๋ค. ์ฝ๊ฒ ๋งํด์ ๋ง์ฝ์ apeach๊ฐ ์ ๊ณ ๋นํ๋ค๊ณ ๊ฐ์ ํด ๋ณด์. ํค๊ฐ์ด apeach๋ผ๋ฉด ์ ๊ณ ํ ์ฌ๋(value)๊ฐ muzi, muzi, muzi๊ฐ ๋ ์๋ ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฅ muzi ํ ๊ฐ๋ง ์จ๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํด์๋งต์ value๋ ์ค๋ณต์ด ์๋ HashSet์ ์ฐ์.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ํท๊ฐ๋ฆฌ๋ ๊ฑด ๋ฆฌํดํ ๊ฐ์ด [1, 2, 0, 2] ๊ฐ ์๋๋ผ, ์ฒ๋ฆฌ๊ฒฐ๊ณผ ๋ฉ์ผ์ ์๋ฅผ ๋ฆฌํดํ๋ ๊ฒ์ด๋ค. ๋๊ฐ k๋ฒ ์ด์ ์ ๊ณ ๋นํด์ ์ ์ง๋นํ๋๊ฐ์์ ๋๋๋๊ฒ ์๋๋ผ, ์ ์ง๋นํ ์ ์ ๊ฐ ์๋ค๋ฉด ๊ทธ ์ฌ๋์ ์ ๊ณ ํ ์ ์ ์๊ฒ ๊ฒฐ๊ณผ ํต๋ณด ๋ฉ์ผ์ ๋ณด๋ผ ํ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ค. ์ ์์์ ๊ฒฝ์ฐ, frodo๋ neo๋ฅผ ๋ ๋ค ์ ๊ณ ํ ์ฌ๋์ ๋ฉ์ผ์ 2๋ฒ ๋ฐ๊ฒ ๋๊ณ , ๋ ์ค์ ํ ๋ช ๋ง ์ ๊ณ ํ ์ฌ๋์ ๋ฉ์ผ 1๋ฒ์ ๋ฐ๋๋ค. ์ฆ ๋ฆฌํดํ ๊ฐ์ [2, 1, 1, 0] ์ด๋ค.
๊ทธ๋์ ์ ๊ณ ์๋ณ๋ก ๋ฉ์ผ ๋ฐ์ ํ์๋ฅผ ์ ์ฅํ ํด์๋งต cnt๋ฅผ ํ๋ ๋ ์ ์ธ ํด ์ฃผ์ด์ผ ํ๋ค.
๋จผ์ ํด์๋งต์ ๋๋ฉด์ ๊ฐ ์ด๋ฆ์ ๋ํด์ ์ ๊ณ ์๊ฐ k๋ช ์ด์์ธ์ง ํ์ธํ๋ค.
๊ทธ ํ, ๋ง์ฝ k๋ช ์ด์์ด๋ฉด cnt์ value ๊ฐ์ ์ฆ๊ฐํ๋ค.

๐จโ๐ป 3. ์ ๋ต์ฝ๋
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
// ์ ๊ณ ๋นํ ์ฌ๋(key) - ์ ๊ณ ํ ์ฌ๋(value)
HashMap<String, HashSet<String>> reportedUser = new HashMap<>();
// ์ ๊ณ ํ์ฌ๋ - ๋ฉ์ผ ๋ฐ์ ํ์
HashMap<String, Integer> cnt = new HashMap<>();
// ์ ๊ณ ๊ธฐ๋ก ์ ์ฅ
for (String r : report) {
String[] name = r.split(" ");
String reportUser = name[0];
String reported = name[1];
if (!reportedUser.containsKey(reported)) {
reportedUser.put(reported, new HashSet<>());
} else {
// ์ ๊ณ ์๋ฅผ ํด์๋งต์ value(ํด์์
)์ ์ถ๊ฐ
reportedUser.get(reported).add(reportUser);
}
}
for(Map.Entry<String, HashSet<String>> entry : reportedUser.entrySet()) {
if (entry.getValue().size() >= k) { // ์ ์ง ๊ธฐ์ค
for (String user : entry.getValue()) {
cnt.put(user, cnt.getOrDefault(user, 0) +1);
}
}
}
int[] answer = new int[id_list.length];
for (int i = 0 ; i < id_list.length; i++) {
answer[i] = cnt.getOrDefault(id_list[i], 0);
}
return answer;
}
}

์ฝ๋ ๋ชจ๋ ๊ฒฐ๊ณผ๊ฐ์ด 0์ผ๋ก ๋์ด..
์? ์ ๊ณ ๋ชฉ๋ก์ด ๋น์ด ์์ด์ ์๋ฌด๋ ์ ์ง๋์ง ์์ ๊ฒ....
reportedUser์ ์๋ก์ด ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ ๋ ์ฒ์ ์ ๊ณ ํ ์ฌ์ฉ์์ ์ ๋ณด๊ฐ ์ ์ฅ ์ ๋จ
์๋ํ๋ฉด if๋ฌธ์ ์๋ชป ์จ์ else ๋ธ๋ก์์๋ง add()๋ฅผ ์คํํ๊ธฐ ๋๋ฌธ์, ์ฒซ ๋ฒ์งธ ์ ๊ณ ๋ ์ถ๊ฐ๊ฐ ์์ ์๋ ๊ฒ์ด๋ค.
์ด ๋ถ๋ถ์ ์๋ชป์....
๊ธฐ์กด์ ์์ผ๋ฉด ์๋ก ์์ฑ ํ ์ถ๊ฐํด์ผ ํ๋๋ฐ else๋ฌธ ์์ value์ ์ถ๊ฐํ๋ ์ฝ๋๋ฅผ ์...
if (!reportedUser.containsKey(reported)) {
reportedUser.put(reported, new HashSet<>());
} else {
reportedUser.get(reported).add(reportUser);
}
์ด ๋ถ๋ถ์ ์๋์ฒ๋ผ ์์ ํด ์ฃผ์๋ค.
if (!reportedUser.containsKey(reported)) {
reportedUser.put(reported, new HashSet<>());
}
reportedUser.get(reported).add(reportUser);
}
chatGPT์์ ์ฐพ์๋ณด๋๊น `putIfAbsent` ๋ผ๋ ๋ฉ์๋๊ฐ ์๋ค.
if๋ฌธ ๋์ ์ด ๋ฉ์๋๋ฅผ ์ฐ๋ฉด ์ฝ๋๊ฐ ๋ ๊น๋ํ๋ค.
reportedUser.putIfAbsent(reported, new HashSet<>());
reportedUser.get(reported).add(reportUser);
๋ค๋ฅธ ์ฝ๋๋ฅผ ์ฐพ์๋ณด๋๊น ์ฒ์์ cnt๋ฅผ 0์ผ๋ก ์ด๊ธฐํํด์ฃผ๋๊ฒ ์ข๋ค๊ณ ํ๋ค.
๋ชจ๋ id_list์ ๋ํด cnt.put(id, 0); ์ ํ์ง ์์ผ๋ฉด ๊ฐ์ด ์์๋ `null`์ด ๋ฐํ๋ ์๋ ์๋ค๊ณ ํ๋ค.
๋๋ ์ด๋ฏธ cnt.put(user, cnt.getOrDefault(user, 0) + 1);๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก ์นด์ดํธ๋ฅผ ์ด๊ธฐํ ํ์ง ์์๋ค. ๊ฒฐ๊ณผ ๋ฐฐ์ด์ ๋ง๋ค ๋๋ cnt.get(id_list[i])๋ฅผ ํ๋ฉด NullPointerException์ด ๋ฐ์ํ ์ ์๋ค๊ณ ํ๋๋ฐ, ์ด ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก cnt.get(id_list[i]) ๋์ getOrDefault๋ฅผ ์ธ ์ ์๋ค. ํ์ง๋ง ๋์ ์ฝ๋์์๋ answer[i] = cnt.get(id_list[i]); ๋ง ํด๋ NullPointerException์ด ๊ฑธ๋ฆด ๊ฐ๋ฅ์ฑ์ ์๋ค.
answer[i] = cnt.get(id_list[i]); // ์ฌ๊ธฐ์ NullPointerException ๊ฐ๋ฅ์ฑ ์์
answer[i] = cnt.getOrDefault(id_list[i], 0);
์ง์ง ์ ๋ต์ฝ๋
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
// ์ ๊ณ ๋นํ ์ฌ๋(key) - ์ ๊ณ ํ ์ฌ๋(value)
HashMap<String, HashSet<String>> reportedUser = new HashMap<>();
// ์ ๊ณ ํ์ฌ๋ - ๋ฉ์ผ ๋ฐ์ ํ์
HashMap<String, Integer> cnt = new HashMap<>();
// ์ ๊ณ ๊ธฐ๋ก ์ ์ฅ
for (String r : report) {
String[] name = r.split(" ");
String reportUser = name[0];
String reported = name[1];
if (!reportedUser.containsKey(reported)) {
reportedUser.put(reported, new HashSet<>());
}
reportedUser.get(reported).add(reportUser);
}
for(Map.Entry<String, HashSet<String>> entry : reportedUser.entrySet()) {
if (entry.getValue().size() >= k) { // ์ ์ง ๊ธฐ์ค
for (String user : entry.getValue()) {
cnt.put(user, cnt.getOrDefault(user, 0) +1);
}
}
}
int[] answer = new int[id_list.length];
for (int i = 0 ; i < id_list.length; i++) {
answer[i] = cnt.getOrDefault(id_list[i], 0);
}
return answer;
}
}
'Algorithm > JAVAํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) 369๊ฒ์ ๋ฌธ์ ํ์ด (15) | 2025.03.31 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๊ฐ๊น์ด ์ ๋ฌธ์ ํ์ด (6) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ผ๊ฐํ์ ์์ฑ์กฐ๊ฑด(1) ๋ฌธ์ ํ์ด (4) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ค๋ณต๋ ๋ฌธ์ ์ ๊ฑฐ ๋ฌธ์ ํ์ด (2) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๋ฐฐ์ด ์์์ ๊ธธ์ด ๋ฌธ์ ํ์ด (8) | 2025.03.30 |
๐ 1. ๋ฌธ์ ์ค๋ช





๐ก 2. ํ์ด๊ณผ์
๋ฌธ์ ์์ ๋งค๊ฐ๋ณ์๋ ์ด์ฉ์ ID๊ฐ ๋ด๊ธด id_list
, ๊ฐ ์ด์ฉ์๊ฐ ์ ๊ณ ํ ์ด์ฉ์์ ID๊ฐ ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด report
, ๊ทธ๋ฆฌ๊ณ ์ ์ง ๊ธฐ์ค์ด ๋๋ ์ ๊ณ ํ์ k
์ด๋ค.
๊ตฌํ๊ณ ์ ํ๋ ๊ฒ์ ๊ฐ ์ ์ ๋ณ๋ก ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ๋ฉ์ผ์ ๋ฐ์ ํ์๋ฅผ ๋ฐฐ์ด ํ์์ผ๋ก ๋ฆฌํดํ๋ ๊ฒ์ด๋ค.
์ด๊ฒ์ Canva๋ก ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.

- muzi๋ฅผ ์ ๊ณ ํ ์ฌ๋ : apeach (1)
- frodo๋ฅผ ์ ๊ณ ํ ์ฌ๋ : muzi, apeach (2)
- apeach๋ฅผ ์ ๊ณ ํ ์ฌ๋ : ์์ (0)
- neo๋ฅผ ์ ๊ณ ํ ์ฌ๋ : muzi, frodo (2)
ํด์๋งต์ผ๋ก ํธ๋ ๋ฌธ์ ๋ผ๋ ๊ฑธ ์ ์ ์๋ค.
ํค๋ ์ ๊ณ ๋ฅผ ๋นํ ์ ์ , ๊ฐ์ ์ ๊ณ ํ ์ ์ ๋ก ๊ตฌ์ฑํ๋ฉด ๋๋ค.
์ด ๋ ๋ฌธ์ ์ ํ ์ ์ ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ๊ณ ํด๋ ์ ๊ณ ํ์๊ฐ 1ํ๋ก ์ฒ๋ฆฌ๋๋ค
๋ ์กฐ๊ฑด์ด ์๋ค. ์ฆ, ํด์๋งต์ value ๊ฐ์ ์ค๋ณต์ด ์์ผ๋ฉด ์๋๋ค. ์ฝ๊ฒ ๋งํด์ ๋ง์ฝ์ apeach๊ฐ ์ ๊ณ ๋นํ๋ค๊ณ ๊ฐ์ ํด ๋ณด์. ํค๊ฐ์ด apeach๋ผ๋ฉด ์ ๊ณ ํ ์ฌ๋(value)๊ฐ muzi, muzi, muzi๊ฐ ๋ ์๋ ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฅ muzi ํ ๊ฐ๋ง ์จ๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํด์๋งต์ value๋ ์ค๋ณต์ด ์๋ HashSet์ ์ฐ์.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ํท๊ฐ๋ฆฌ๋ ๊ฑด ๋ฆฌํดํ ๊ฐ์ด [1, 2, 0, 2] ๊ฐ ์๋๋ผ, ์ฒ๋ฆฌ๊ฒฐ๊ณผ ๋ฉ์ผ์ ์๋ฅผ ๋ฆฌํดํ๋ ๊ฒ์ด๋ค. ๋๊ฐ k๋ฒ ์ด์ ์ ๊ณ ๋นํด์ ์ ์ง๋นํ๋๊ฐ์์ ๋๋๋๊ฒ ์๋๋ผ, ์ ์ง๋นํ ์ ์ ๊ฐ ์๋ค๋ฉด ๊ทธ ์ฌ๋์ ์ ๊ณ ํ ์ ์ ์๊ฒ ๊ฒฐ๊ณผ ํต๋ณด ๋ฉ์ผ์ ๋ณด๋ผ ํ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ค. ์ ์์์ ๊ฒฝ์ฐ, frodo๋ neo๋ฅผ ๋ ๋ค ์ ๊ณ ํ ์ฌ๋์ ๋ฉ์ผ์ 2๋ฒ ๋ฐ๊ฒ ๋๊ณ , ๋ ์ค์ ํ ๋ช ๋ง ์ ๊ณ ํ ์ฌ๋์ ๋ฉ์ผ 1๋ฒ์ ๋ฐ๋๋ค. ์ฆ ๋ฆฌํดํ ๊ฐ์ [2, 1, 1, 0] ์ด๋ค.
๊ทธ๋์ ์ ๊ณ ์๋ณ๋ก ๋ฉ์ผ ๋ฐ์ ํ์๋ฅผ ์ ์ฅํ ํด์๋งต cnt๋ฅผ ํ๋ ๋ ์ ์ธ ํด ์ฃผ์ด์ผ ํ๋ค.
๋จผ์ ํด์๋งต์ ๋๋ฉด์ ๊ฐ ์ด๋ฆ์ ๋ํด์ ์ ๊ณ ์๊ฐ k๋ช ์ด์์ธ์ง ํ์ธํ๋ค.
๊ทธ ํ, ๋ง์ฝ k๋ช ์ด์์ด๋ฉด cnt์ value ๊ฐ์ ์ฆ๊ฐํ๋ค.

๐จโ๐ป 3. ์ ๋ต์ฝ๋
import java.util.HashMap; import java.util.HashSet; import java.util.Map; class Solution { public int[] solution(String[] id_list, String[] report, int k) { // ์ ๊ณ ๋นํ ์ฌ๋(key) - ์ ๊ณ ํ ์ฌ๋(value) HashMap<String, HashSet<String>> reportedUser = new HashMap<>(); // ์ ๊ณ ํ์ฌ๋ - ๋ฉ์ผ ๋ฐ์ ํ์ HashMap<String, Integer> cnt = new HashMap<>(); // ์ ๊ณ ๊ธฐ๋ก ์ ์ฅ for (String r : report) { String[] name = r.split(" "); String reportUser = name[0]; String reported = name[1]; if (!reportedUser.containsKey(reported)) { reportedUser.put(reported, new HashSet<>()); } else { // ์ ๊ณ ์๋ฅผ ํด์๋งต์ value(ํด์์
)์ ์ถ๊ฐ reportedUser.get(reported).add(reportUser); } } for(Map.Entry<String, HashSet<String>> entry : reportedUser.entrySet()) { if (entry.getValue().size() >= k) { // ์ ์ง ๊ธฐ์ค for (String user : entry.getValue()) { cnt.put(user, cnt.getOrDefault(user, 0) +1); } } } int[] answer = new int[id_list.length]; for (int i = 0 ; i < id_list.length; i++) { answer[i] = cnt.getOrDefault(id_list[i], 0); } return answer; } }

์ฝ๋ ๋ชจ๋ ๊ฒฐ๊ณผ๊ฐ์ด 0์ผ๋ก ๋์ด..
์? ์ ๊ณ ๋ชฉ๋ก์ด ๋น์ด ์์ด์ ์๋ฌด๋ ์ ์ง๋์ง ์์ ๊ฒ....
reportedUser์ ์๋ก์ด ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ ๋ ์ฒ์ ์ ๊ณ ํ ์ฌ์ฉ์์ ์ ๋ณด๊ฐ ์ ์ฅ ์ ๋จ
์๋ํ๋ฉด if๋ฌธ์ ์๋ชป ์จ์ else ๋ธ๋ก์์๋ง add()๋ฅผ ์คํํ๊ธฐ ๋๋ฌธ์, ์ฒซ ๋ฒ์งธ ์ ๊ณ ๋ ์ถ๊ฐ๊ฐ ์์ ์๋ ๊ฒ์ด๋ค.
์ด ๋ถ๋ถ์ ์๋ชป์....
๊ธฐ์กด์ ์์ผ๋ฉด ์๋ก ์์ฑ ํ ์ถ๊ฐํด์ผ ํ๋๋ฐ else๋ฌธ ์์ value์ ์ถ๊ฐํ๋ ์ฝ๋๋ฅผ ์...
if (!reportedUser.containsKey(reported)) { reportedUser.put(reported, new HashSet<>()); } else { reportedUser.get(reported).add(reportUser); }
์ด ๋ถ๋ถ์ ์๋์ฒ๋ผ ์์ ํด ์ฃผ์๋ค.
if (!reportedUser.containsKey(reported)) { reportedUser.put(reported, new HashSet<>()); } reportedUser.get(reported).add(reportUser); }
chatGPT์์ ์ฐพ์๋ณด๋๊น putIfAbsent
๋ผ๋ ๋ฉ์๋๊ฐ ์๋ค.
if๋ฌธ ๋์ ์ด ๋ฉ์๋๋ฅผ ์ฐ๋ฉด ์ฝ๋๊ฐ ๋ ๊น๋ํ๋ค.
reportedUser.putIfAbsent(reported, new HashSet<>()); reportedUser.get(reported).add(reportUser);
๋ค๋ฅธ ์ฝ๋๋ฅผ ์ฐพ์๋ณด๋๊น ์ฒ์์ cnt๋ฅผ 0์ผ๋ก ์ด๊ธฐํํด์ฃผ๋๊ฒ ์ข๋ค๊ณ ํ๋ค.
๋ชจ๋ id_list์ ๋ํด cnt.put(id, 0); ์ ํ์ง ์์ผ๋ฉด ๊ฐ์ด ์์๋ null
์ด ๋ฐํ๋ ์๋ ์๋ค๊ณ ํ๋ค.
๋๋ ์ด๋ฏธ cnt.put(user, cnt.getOrDefault(user, 0) + 1);๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก ์นด์ดํธ๋ฅผ ์ด๊ธฐํ ํ์ง ์์๋ค. ๊ฒฐ๊ณผ ๋ฐฐ์ด์ ๋ง๋ค ๋๋ cnt.get(id_list[i])๋ฅผ ํ๋ฉด NullPointerException์ด ๋ฐ์ํ ์ ์๋ค๊ณ ํ๋๋ฐ, ์ด ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก cnt.get(id_list[i]) ๋์ getOrDefault๋ฅผ ์ธ ์ ์๋ค. ํ์ง๋ง ๋์ ์ฝ๋์์๋ answer[i] = cnt.get(id_list[i]); ๋ง ํด๋ NullPointerException์ด ๊ฑธ๋ฆด ๊ฐ๋ฅ์ฑ์ ์๋ค.
answer[i] = cnt.get(id_list[i]); // ์ฌ๊ธฐ์ NullPointerException ๊ฐ๋ฅ์ฑ ์์
answer[i] = cnt.getOrDefault(id_list[i], 0);
์ง์ง ์ ๋ต์ฝ๋
import java.util.HashMap; import java.util.HashSet; import java.util.Map; class Solution { public int[] solution(String[] id_list, String[] report, int k) { // ์ ๊ณ ๋นํ ์ฌ๋(key) - ์ ๊ณ ํ ์ฌ๋(value) HashMap<String, HashSet<String>> reportedUser = new HashMap<>(); // ์ ๊ณ ํ์ฌ๋ - ๋ฉ์ผ ๋ฐ์ ํ์ HashMap<String, Integer> cnt = new HashMap<>(); // ์ ๊ณ ๊ธฐ๋ก ์ ์ฅ for (String r : report) { String[] name = r.split(" "); String reportUser = name[0]; String reported = name[1]; if (!reportedUser.containsKey(reported)) { reportedUser.put(reported, new HashSet<>()); } reportedUser.get(reported).add(reportUser); } for(Map.Entry<String, HashSet<String>> entry : reportedUser.entrySet()) { if (entry.getValue().size() >= k) { // ์ ์ง ๊ธฐ์ค for (String user : entry.getValue()) { cnt.put(user, cnt.getOrDefault(user, 0) +1); } } } int[] answer = new int[id_list.length]; for (int i = 0 ; i < id_list.length; i++) { answer[i] = cnt.getOrDefault(id_list[i], 0); } return answer; } }
'Algorithm > JAVAํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) 369๊ฒ์ ๋ฌธ์ ํ์ด (15) | 2025.03.31 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๊ฐ๊น์ด ์ ๋ฌธ์ ํ์ด (6) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ผ๊ฐํ์ ์์ฑ์กฐ๊ฑด(1) ๋ฌธ์ ํ์ด (4) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ์ค๋ณต๋ ๋ฌธ์ ์ ๊ฑฐ ๋ฌธ์ ํ์ด (2) | 2025.03.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] (Java) ๋ฐฐ์ด ์์์ ๊ธธ์ด ๋ฌธ์ ํ์ด (8) | 2025.03.30 |