공부 일지/개인 공부 기록용
자바공부 38일차
Joshbla
2022. 6. 9. 01:05
2022/06/09
- 프로그래머스 코딩테스트연습 lv.1 신고결과 받기
- 풀이1
import java.util.HashMap;
import java.util.HashSet;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
HashMap<String, Integer> map = new HashMap<>();
HashSet<String> set = new HashSet<>();
for (int i = 0; i < report.length; i++) {
set.add(report[i]);
}
report = new String[set.size()];
int x = 0;
for (String a : set) {
report[x] = a;
x++;
}
int[] reported = new int[id_list.length];
for (int i = 0; i < id_list.length; i++) {
map.put(id_list[i], i);
}
int[] answer = new int[id_list.length];
for (int i = 0; i < report.length; i++) {
reported[map.get(report[i].split(" ")[1])]++;
}
for (int i = 0; i < reported.length; i++) {
if (reported[i] >= k) {
for (int j = 0; j < report.length; j++) {
if (report[j].split(" ")[1].equals(id_list[i])) {
answer[map.get(report[j].split(" ")[0])]++;
}
}
}
}
return answer;
}
}
- 풀이2
import java.util.HashMap;
import java.util.HashSet;
import java.util.ArrayList;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < id_list.length; i++) {
map.put(id_list[i], i);
}
int[] answer = new int[id_list.length];
ArrayList<HashSet<String>> setList = new ArrayList<>();
for (int i = 0; i < id_list.length; i++) {
HashSet<String> set = new HashSet<>();
setList.add(set);
}
for (int i = 0; i < report.length; i++) {
String[] str = report[i].split(" ");
setList.get(map.get(str[1])).add(str[0]);
}
for (int i = 0; i < setList.size(); i++) {
if (setList.get(i).size() >= k) {
for (String a : setList.get(i)) {
answer[map.get(a)]++;
}
}
}
return answer;
}
}