developer-ellen
인간 디버거의 로그 찍기
developer-ellen
전체 방문자
오늘
어제
  • 분류 전체보기 (217)
    • 회고록 (0)
    • 취뽀 및 커리어 여정의 Stack (2)
      • SSAFY 7기 (2)
    • 프로그래밍공부 (24)
      • c++ (0)
      • JAVA (3)
      • Spring (5)
      • design pattern (3)
      • BackDB (1)
      • Servlet&JSP (3)
      • Vue (4)
      • JPA (4)
      • Infra (1)
      • Linux (0)
    • AI (3)
      • papers (3)
      • trend (0)
    • 프로젝트진행 (0)
      • 데이터베이스 (0)
      • 서버개발 (0)
      • 인공지능 (0)
      • 하루정리 (0)
    • 포트폴리오 (0)
    • 알고리즘 (158)
      • 알고리즘문풀 (155)
      • 알고리즘공부 (3)
    • 통계공부 (15)
      • 시계열분석 (15)
      • 회귀분석 (0)
    • CS (14)
      • 컴퓨터네트워크 (4)
      • 운영체제 (8)
      • 데이터베이스 (2)
    • 주저리주저리 (0)
      • 필사 (0)
    • 취업관련정보 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 통계분석
  • Arima
  • 백준파이썬풀이
  • ARIMA모형
  • AR모형
  • 운영체제인터럽트
  • c++ 빌더 패턴
  • 통계학
  • 데이터분석
  • SW역량테스트파이썬
  • 삼성코테파이썬풀이
  • 시계열
  • BOJ파이썬풀이
  • 카카오코테java풀이
  • 삼성코테구현문제추천
  • 시계열분석
  • 삼성코테파이썬준비
  • c++디자인패턴
  • 코테파이썬
  • 삼성코테준비
  • 삼성코테기출
  • 삼성코테구현풀이
  • 카카오코테
  • 삼성코테자바풀이
  • MA모형
  • 삼성코테자바준비
  • 삼성코테기출자바풀이
  • 삼성코테파이썬
  • 삼성코테자바꿀팁
  • SW역량테스트파이썬풀이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
developer-ellen

인간 디버거의 로그 찍기

알고리즘/알고리즘문풀

2022 KAKAO BLIND RECRUITMENT - 신고 결과 받기 (JAVA)

2022. 6. 12. 23:47

❓ 문제 - 2022 KAKAO BLIND RECRUITMENT 신고 결과 받기 - JAVA 풀이법

출처 

(https://programmers.co.kr/learn/courses/30/lessons/92334)

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

 

📝 문제해결법 

1. Hash의 자료구조를 사용해서 풀었다.

  • reportHash라는 HashMap에 Key(String) : 신고한 사람, Value(HashSet<String>) : 신고 당한 사람 형태로 저장한다.
  • count라는 HashMap에는 Key(String) : 신고당한 사람, Value(Integer) : 신고당한 횟수로 저장한다.
  • report 배열 하나씩 신고한 사람 -> 신고할 사람으로 정보를 꺼내서 혹시 신고한 사람이 이미 신고할 사람을 신고했는지 체크한 후에 신고하지 않았다면 신고 처리를 해준다.
  • 모든 신고 처리가 끝난 후 다시 reportHash와 count의 HashMap을 이용해서 유저가 신고한 사람들 중 몇 명이 게시판 이용이 정지되었는지 answer에 넣어준다.

 

 

2. 느낀점

  • 일단 처음에 HashMap을 두 개를 사용했지만, HashSet을 이용하지 않고 String 형태로 더해주는 처리하고 중복은 contains를 활용했떠니 일부 테스트케이스는 틀리고 시간이 전체적으로 높게 나왔다.
  • HashMap안에 Value에 HashSet의 자료구조가 한 번 더 이용할 수 있구나 배웠다 !

 

💻 소스코드 

// 2022 KAKAO BLIND RECRUITMENT - 신고결과받기 - Hash 이용 - 신고 결과 받기
// Hash
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;



public class Solution {

	public static void main(String[] args) {


	}
	
	public static int[] solution(String[] id_list, String[] report, int k) {
		HashMap<String, HashSet<String>> reportHash = new HashMap<String, HashSet<String>>();
        HashMap<String, Integer> count = new HashMap<String, Integer>();
        int[] answer = new int[id_list.length];
        for(String id:id_list) {
        	reportHash.put(id, new HashSet<String>());
        	count.put(id, 0);
        }
        
        for(String s:report) {
        	String[] str = s.split(" ");
     
        	if(!reportHash.get(str[0]).contains(str[1])) {
        		int cnt = count.get(str[1]);
            	count.put(str[1], cnt+1);
            	reportHash.get(str[0]).add(str[1]);
        	}
        	
        	
        }
        
        for(int i=0;i<id_list.length;i++) {
        	int cnt = 0;
        
        	for(String id:reportHash.get(id_list[i])) {
        		if(count.get(id) >= k) {
        			cnt++;
        		}
        	}
     
        	
        	answer[i] = cnt;
        }

		
		
        return answer;
    }

}

'알고리즘 > 알고리즘문풀' 카테고리의 다른 글

2022 KAKAO BLIND RECRUITMENT - 양궁대회 (JAVA)  (0) 2022.06.15
2022 KAKAO BLIND RECRUITMENT - 주차 요금 계산 (JAVA)  (0) 2022.06.15
2021 KAKAO BLIND RECRUITMENT - 매출 하락 최소화 (JAVA)  (0) 2022.06.09
BOJ - 트리의 지름 1167번 (JAVA)  (0) 2022.06.08
2021 KAKAO BLIND RECRUITMENT - 합승 택시 요금 (JAVA)  (0) 2022.06.02
    '알고리즘/알고리즘문풀' 카테고리의 다른 글
    • 2022 KAKAO BLIND RECRUITMENT - 양궁대회 (JAVA)
    • 2022 KAKAO BLIND RECRUITMENT - 주차 요금 계산 (JAVA)
    • 2021 KAKAO BLIND RECRUITMENT - 매출 하락 최소화 (JAVA)
    • BOJ - 트리의 지름 1167번 (JAVA)
    developer-ellen
    developer-ellen

    티스토리툴바