~๋ชฉ์ฐจ~
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/92334
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
- ํ์ด์ฌ์ฒ๋ผ ๋ฐฐ์ด์ ๋ค๋ฅธ ํ์ ์ ๋ฃ์ ์ ์๊ธฐ ๋๋ฌธ์ ํค๋งธ์ผ๋ Map ํด๋์ค์ value์ Set ํ์ ์ ๋ฃ์
- ๊ฐ ์ ๊ณ ์ด๋ ฅ์ ๋๋ฉฐ ์ ๊ณ ๋นํ ์ฌ๋์ด key๊ฐ, ์ ๊ณ ํ ์ฌ๋๋ค์ด value
- ๊ฐ ์ ์ ๋ณ ์ ์ง ๋ฉ์ผ์ ์นด์ดํธ ํ๊ธฐ ์ํด LinkedHashMap์ ์ ์(๋จ์ HashMap์ผ๋ก ์์๋ฅผ ์ฅ๋ด๋ฐ์ ์ ์์)
- ์ ๊ณ ๋ฐ์ ์ฌ๋๋ค์ ์ํํ๋ฉฐ k๋ณด๋ค ๋ง์ ์ฌ๋์๊ฒ ์ ๊ณ ๋ฐ์๋ค๋ฉด ์ ๊ณ ํ ์ฌ๋๋ค์ ๋ฉ์ผ ๊ฐ์๋ฅผ ํ๋์ฉ ์ถ๊ฐํ๋ค.
- ์ต์ข ์ ์ผ๋ก stream์ ์ด์ฉํ์ฌ intํ์ผ๋ก ๋ณํ ํ ๋ฐฐ์ด์ ๋ฐํ
์์ฑ ์ฝ๋
import java.util.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
// ์ ์ ๋ณ ๋๊ตฌ์๊ฒ ์ ๊ณ ๋ฐ์๋์ง
Map<String, Set<String>> map = new HashMap<>();
for(String repo: report){
String[] singo = repo.split(" ");
Set<String> user = map.getOrDefault(singo[1], new HashSet<String>());
user.add(singo[0]); // ์ฃผ์
map.put(singo[1], user);
}
Map<String, Integer> countmap = new LinkedHashMap();
for(String id: id_list){
countmap.put(id, 0);
}
for(Map.Entry<String, Set<String>> entry: map.entrySet())
{
if(entry.getValue().size() >= k){
for(String name: entry.getValue()){
countmap.put(name, countmap.get(name)+1);
}
}
}
return countmap.values().stream().mapToInt(i->i).toArray();
}
}
๋์์ด ๋์ จ๋ค๋ฉด ์ข์์ ๋๋ฌ์ฃผ์ธ์๐
REFERENCE
https://recordsoflife.tistory.com/314
'๐๋ฌธ์ ํ์ด > ๐งฉProgrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ์ฅ ๋จผ ๋ ธ๋ | BFS | ๋ค์ต์คํธ๋ผ (0) | 2023.05.16 |
---|---|
[Python] ํ๋ก๊ทธ๋๋จธ์ค N์ผ๋ก ํํ | DP (0) | 2023.05.15 |
[JAVA] ํ๋ก๊ทธ๋๋จธ์ค ์์ ์ฐพ๊ธฐ | ์๋ผํ ์คํ ๋ค์ค์ฒด | ๊ณจ๋ ๋ฐํ์ ์ถ์ธก (0) | 2023.05.06 |
[JAVA] ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ์๊ณ ์ฌ | ArrayList | Math (0) | 2023.05.06 |
[JAVA] ํ๋ก๊ทธ๋๋จธ์ค ํฌ์ผ๋ชฌ | HashSet (0) | 2023.05.05 |