sean.jin
Spark Code Blog
sean.jin
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발공부
      • Kotlin
      • LeetCode
      • Algorithm
      • React
    • 주식차트
    • 책리뷰
    • 유틸리티

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 주식책리뷰
  • 초보
  • 아빠와 딸의 주식투자 레슨
  • 트리플 위칭데이
  • 주식투자
  • 부의 추월차선
  • 자기개발
  • 책
  • 네마녀의날
  • 책추천
  • 책리뷰
  • 주식입문자
  • 경제
  • 변동성
  • 오
  • 쿼드러플위칭데이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sean.jin

Spark Code Blog

개발공부/LeetCode

[JavaScript] 49. Group Anagrams 쉬운설명, hasmap사용

2022. 3. 20. 16:41
반응형

49. Group Anagrams

Given an array of strings strs, group the anagrams together. You can return the answer in any order.

An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

 

Example 1:

Input: strs = ["eat","tea","tan","ate","nat","bat"]
Output: [["bat"],["nat","tan"],["ate","eat","tea"]]

 

Example 2: 

Input: strs = [""]
Output: [[""]]

 

Example 3: 

Input: strs = ["a"]
Output: [["a"]]

 

 

계획

문제 해결 전략

 

같은 알파벳을 가지고 있는 단어들을 array로 묶어서 그 array를 다시 모아서 array로 리턴해야 하는 문제입니다. 

 

일단 string을 array들로 만들어줍니다. 만들어줄때 sort를 함으로써, 구성이 같다면, sort 된 후에는 같은 알파벳 구조가 나와야 합니다. 

 

예를 들면 tea, ate가 sort되면 두 개다 aet가 리턴됩니다. 

 

그리고, 맵을 만들어 이 두개값을 aet라는 키를 가진 맵에 value로 tea와 sort를 넣어줘야 합니다. 

 

이걸 string 끝까지 반복시킨다음, 맵에 value들을 리턴 시키면 됩니다. 

 

 

해설

const groupAnagrams = strs => { 
  const map = new Map() 

  for (let str of strs) {
    const sorted = str.split('').sort().join('')//각 strs를 sort시킨다. 

    if (map.has(sorted)) { //만약 map 에 sort된 단어가 이미 존재한다면, [이미있던값 , 새로운값] 을 value로 넣습니다.  
      map.set(sorted, [...map.get(sorted), str])
    } else {
      map.set(sorted, [str]) //처음 발견된 패턴이면 현재 값만 넣습니다. 
    }
  }

  return [...map.values()] //map에 값을 모두 리턴 
}
반응형

'개발공부 > LeetCode' 카테고리의 다른 글

[Javascript] 1663. Smallest String With A Given Numeric Value -쉬운 설명  (0) 2022.03.22
[JavaScript] 36. Valid Sudoku  (0) 2022.03.20
[JavaScript] 33. Search in Rotated Sorted Array - 쉬운설명 바이너리 서치 활용  (0) 2022.03.19
[JavaScript]856. Score of Parentheses 쉬운설명, stack 사용  (0) 2022.03.17
[JavaScript]34. Find First and Last Position of Element in Sorted Array - 쉬운설명  (0) 2022.03.17
    '개발공부/LeetCode' 카테고리의 다른 글
    • [Javascript] 1663. Smallest String With A Given Numeric Value -쉬운 설명
    • [JavaScript] 36. Valid Sudoku
    • [JavaScript] 33. Search in Rotated Sorted Array - 쉬운설명 바이너리 서치 활용
    • [JavaScript]856. Score of Parentheses 쉬운설명, stack 사용
    sean.jin
    sean.jin
    앱개발, 알고리즘, JS, Kotlin, 미국 취업준비

    티스토리툴바