개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (287)
    • Web Front End (76)
      • Javascript & Typescript (26)
      • React (12)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (8)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 회고
  • 자바스크립트
  • 노개북
  • JavaScript
  • 릿코드
  • 개발자
  • 프론트엔드
  • 오늘의회고
  • 노마드북클럽
  • TypeScript

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

[HackerRank][Javascript] Frequency Queries
Problem Solved/HackerRank

[HackerRank][Javascript] Frequency Queries

2020. 7. 27. 13:43
반응형

문제 - Frequency Queries

문제 설명

타입과 값이 넘어오는 이중 배열에서 type 3일 때의 빈도수 TF 값을 구하는 문제

  • 처음에 문제를 이해하지 못하고 설명을 듣고 이해했다. 문제를 더 꼼꼼하게 읽어야겠다.
  • 풀이 설명을 듣고 기억에 남아서 그대로 풀었다.
  1. value의 개수를 저장하기 위한 map과 최종적으로 반환하기 위한 빈 배열을 생성한다.
  2. queries로 반복문을 돌며 타입을 체크하고 switch문을 돈다.
  3. 타입이 1이면 map에 값을 저장한다.
  4. 타입이 2이면 map에서 1을 빼 주어 삭제한다.
  5. 타입이 3이면 value들 중에 일치하는 것이 있는지 확인해 값을 배열에 담는다.
  6. 반복문이 끝나고 나온 result를 반환한다.

성공 코드

function freqQuery(queries) {
  let map = new Map(); // 1
  let result = [];

  queries.forEach(([type, val]) => {
    // 2
    const mVal = map.get(val);
    switch (type) {
      case 1: // 3
        mVal ? map.set(val, mVal + 1) : map.set(val, 1);
        break;
      case 2: // 4
        if (mVal) map.set(val, mVal - 1);
        break;
      case 3: // 5
        result.push([...map.values()].some((v) => v === val) ? 1 : 0);
        break;
      default:
        break;
    }
  });

  return result;
}
반응형
저작자표시 (새창열림)
    'Problem Solved/HackerRank' 카테고리의 다른 글
    • [HackerRank][Javascript] Alternating Characters
    • [HackerRank][Javascript] Strings: Making Anagrams
    • [HackerRank][Javscript] Map - Count Triplets
    • [HackerRank][Javascript] Sherlock and Anagrams
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바