TIL - 2022.03.07

Yuum K·2022년 3월 7일

TIL

목록 보기
12/12

🧐오늘 한 일

  • 프로그래머스 - 신고결과받기 (Level 1)

😁 알게 된 점

➡️ 프로그래머스 신고결과받기 (Level 1)-카카오블라인드2022
문제를 읽고 Map과 Set을 이용하면 풀 수 있을 것이라고 생각했다.
Map으로 기존 아이디 기준 map1, 신고 된 아이디기준 map2

  • map1을 String, Integer로 선언한 이유는 value부분에 id_list배열의 인덱스 값이 필요해서다.
    이유
  1. 정답을 id_list에 나온 순서대로 return하기 위함
  2. map2에 신고한 id를 list에 넣을 때 String값을 넣는 것 보다 Integer을 넣는 게 메모리도 적음
  3. 그 id가 map2의 value list안에 있는 지 비교할 때도 String 끼리 비교보다 Integer끼리 비교가 빠름

https://github.com/kangum99/ALGORITHM/blob/main/프로그래머스/LEVEL1/신고 결과 받기.java

  • 새로운 문법
    • map2.computeIfAbsent(id[1], v -> new HashSet<>()).add(map1.get(id[0]));
      중복되는 key값이 없으면 set초기화 후 add, 있으면 그냥 추가로 add

😎 다짐

  1. 오랜만에 알고리즘을 해서 level 1임에도 어려웠다. 다시 시작해보자
  2. Map과 Set은 자주 쓰인다. 쓰임을 외워보자
  3. Stream을 쓰는 법을 익혀보자.→ 쓰면 코드가 간결해진다.
profile
후회 하지 않기 위해 노력하는 개발자

0개의 댓글