신고 결과 받기

최진훈·2022년 2월 28일
0

programmers

목록 보기
43/73

이번문제는 좀 쉬워보이면서도 어려워보인다.. 말로 이해하려니까 쉽지가 않네.. 예시를 계속 읽다보니 대충 문제는 이해를 했다. 유저별로 신고한 유저를 새롭게 정리하고 그중 k 이상의 신고를 받은 정지ID 목록을 만들어서 비교하는식?으로 하면 될 듯하다. 순서를 다시 보자면

  1. report의 중복을 제거하고 반복자를 통해 원소에 접근한다.
  2. 유저ID, 신고한ID가 하나의 원소안에 공백으로 들어있음을 감안하여 split메소드를 이용해 나누어 준다.
  3. 새로운 map을 하나 만들고 거기에 유저와 신고자를 새롭게 정리한다.
  4. report에서 k이상으로 반복되는 원소들을 찾아준다.
  5. 새롭게 정의한 map과 비교하여 반환 메일수를 answer에 저장한다.

흐름은 이런식인데 뭔가 이상하다 알수없는 뭔가..

일단 레고레고

약 두시간의 시행착오와 구글링 끝에 해결한 결과이다. 위에 정리해놓은 순서를 현재 코드와 비교해보면 애초에 시작점부터가 잘못됐다. 나는 유저ID를 기준으로 새로운 collection을 만들어서 문제를 풀어나가려했지만 신고된ID 기준으로 문제를 풀어야 정지된 아이디도 찾기가 편했다.

->

신고ID 따로 정지ID 따로 그 이후 비교. 이런식이 아닌 유저ID 별로 신고한 횟수를 카운트하고 정지된 아이디를 신고한 유저ID만 찾아주면 끝이었다. 즉, 입력받은 report에서 (k이상으로 신고가 되어 정지된 유저ID)를 포함할때 마다 카운트를 해주는 느낌인 것 이다.
문제 자체를 푸는데는 그리 어렵지않았으나 이해하고 돌아가는 구조를 생각하는데 시간이 많이 걸린 문제이다.

source : https://yenne.tistory.com/95?category=798542
source : https://kotlinlang.org/docs/map-operations.html#retrieve-keys-and-values

테스트도 고고

합격~

profile
레고레고

0개의 댓글