📍 생각대로 코딩
- ArrayList, 단계를 나누어서 진행
- 유저 ID =>신고 List 중복제거 => 신고당한 카운트 세기 => 신고당한 횟수가 K번 이상이면 신고자 카운트 증가
import java.util.ArrayList;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
//이름 저장 List
ArrayList<String> name = new ArrayList<String>();
for(String id : id_list){
name.add(id);
}
//신고 List 중복제거
ArrayList<String> reports = new ArrayList<String>();
for(String re : report){
if(!reports.contains(re)){
reports.add(re);
}
}
//신고당한 카운트
ArrayList<Integer> B = new ArrayList<Integer>();
for(int i=0; i<name.size();i++){
B.add(0);
}
for(int i =0; i<reports.size(); i++){
String A_index = reports.get(i).split("\\s")[0];
String B_index = reports.get(i).split("\\s")[1];
for(int j = 0; j<name.size(); j++){
if(B_index.equals(name.get(j))){
B.set(j,B.get(j)+1);
}
}
}
//K이상이면 신고자 카운트 증가
ArrayList<Integer> A = new ArrayList<Integer>();
for(int i=0; i<name.size();i++){
A.add(0);
}
for(int i=0; i<B.size(); i++){
if(B.get(i)>=k){
for(int j =0; j<reports.size(); j++){
String A_index = reports.get(j).split("\\s")[0];
String B_index = reports.get(j).split("\\s")[1];
if(B_index.equals(name.get(i))){
for(int n=0; n<name.size(); n++){
if(A_index.equals(name.get(n))){
A.set(n,A.get(n)+1);
}
}
}
}
}
}
for(int i=0; i<A.size(); i++){
answer[i] = A.get(i);
}
return answer;
}
}
결과
📍 수정
- 이름 저장 List는 필요없을 거 같다
- ArrayList A는 필요없을거같다.
import java.util.ArrayList;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
//신고 List 중복제거
ArrayList<String> reports = new ArrayList<String>();
for(String re : report){
if(!reports.contains(re)){
reports.add(re);
}
}
//신고당한 카운트
ArrayList<Integer> B = new ArrayList<Integer>();
for(int i=0; i<id_list.length;i++){
B.add(0);
}
for(int i =0; i<reports.size(); i++){
String A_index = reports.get(i).split("\\s")[0];
String B_index = reports.get(i).split("\\s")[1];
for(int j = 0; j<id_list.length; j++){
if(B_index.equals(id_list[j])){
B.set(j,B.get(j)+1);
}
}
}
//K이상이면 신고자 카운트 증가
for(int i=0; i<B.size(); i++){
if(B.get(i)>=k){
for(int j =0; j<reports.size(); j++){
String A_index = reports.get(j).split("\\s")[0];
String B_index = reports.get(j).split("\\s")[1];
if(B_index.equals(id_list[i])){
for(int n=0; n<id_list.length; n++){
if(A_index.equals(id_list[n])){
answer[n] += 1 ;
}
}
}
}
}
}
return answer;
}
}
결과...
아 왜... 더 늘어나......!!