반응형
[문제링크]
https://programmers.co.kr/learn/courses/30/lessons/92334#
[설명]
이 문제를 단순하게 구현으로 풀었습니다.
1) 한 유저를 여러번 신고할 수 있지만, 신고 횟수는 1회로 처리되기에 Set을 이용하여 중복을 제거했습니다.
2) 각 유저가 신고를 받은 횟수를 report, 신고를 한 횟수를 from으로 처리하여 추가했습니다.
3) 신고를 k회 이상 받은 사람을 Set에 저장했습니다.
4) report를 돌며 신고받은 사람의 ID가 3)의 Set에 포함이 된다면, 신고를 한 사람의 ID에 해당하는 answer에 추가를 했습니다.
프로그래머스 2022 KAKAO BLIND RECRUITMENT - 신고 결과 받기 JAVA풀이
import java.util.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
Id[] ids=new Id[id_list.length];
for(int i=0;i<id_list.length;i++){
ids[i]=new Id(id_list[i],i,0,0);
}
int[] arr = new int[id_list.length];
Set<String> reportSet = new HashSet<>();
for(int i=0;i<report.length;i++){
reportSet.add(report[i]);
}
String[] reports=new String[reportSet.size()];
Iterator<String> itera=reportSet.iterator();
int index=0;
while(itera.hasNext()){
reports[index++]=itera.next();
}
for(int i=0;i<reports.length;i++){
String[] s=reports[i].split(" ");
for(int j=0;j<id_list.length;j++){
if(s[1].equals(ids[j].name)){
ids[j].report++;
}
if(s[0].equals(ids[j].name)){
ids[j].from++;
}
}
}
Set<String> set=new HashSet<>();
for(int i=0;i<id_list.length;i++){
if(ids[i].report>=k){ //해당 유저의 신고받은 횟수가 k이상이면
set.add(ids[i].name);
}
}
for(int i=0;i<reports.length;i++){
String[] s = reports[i].split(" ");
Iterator<String> iter = set.iterator();
while(iter.hasNext()){
String temp=iter.next();
if(temp.equals(s[1])){
for(int l=0;l<id_list.length;l++){
if(ids[l].name.equals(s[0])){
answer[ids[l].index]++;
}
}
}
}
}
return answer;
}
public class Id{
String name;
int index;
int from;
int report;
public Id(String name, int index, int from, int report){
this.name=name;
this.index=index;
this.from=from;
this.report=report;
}
}
}
궁금하신 부분이나 부족한 점은 댓글로 알려주시면 감사하겠습니다.
반응형
'알고리즘 > 구현' 카테고리의 다른 글
2022 KAKAO BLIND RECRUITMENT - 주차 요금 계산 (0) | 2022.06.05 |
---|---|
BJ_G5_14719_빗물 - Java (0) | 2022.02.27 |
BJ_G5_20055_컨베이어 벨트 위의 로봇 - Java (0) | 2022.02.04 |
BJ_G4_20058_마법사 상어와 파이어스톰 - Java (0) | 2022.01.30 |
BJ_B2_15552_빠른A+B - Java (0) | 2022.01.20 |
댓글