Code Kata | day18 groupAnagrams

juri·2021년 8월 11일
0

Code Kata

목록 보기
15/15
post-thumbnail

Q. 같은 알파벳으로 이루어진 단어끼리 묶어주세요.

☑️ 0차

  1. set 혹은 tuple을 이용해서 단어를 알파벳단위로 분리 (후 정렬)
  2. for문을 사용해 각 단어들이 중복인지 확인
  3. 중복이 아닐 시 반환할 값에 새로 생성, 중복일 시 반환할 값에 있는 기존 배열에 추가

☑️ 1차 (pass)

def groupAnagrams2(strs):
    test = []
    results = []
    for str in strs:
      if not set(str) in test:
        test.append(set(str))
        results.append([str])
      else:
        results[test.index(set(str))].append(str)
    return results

☑️ 2차 (pass)

def groupAnagrams(strs):
  test2={}
  for str in strs:
    key = tuple(sorted(str))
    test2[key] = test2.get(key,[]) + [str]
  return list(test2.values())

딕셔너리의 get() 메소드

syntax | get(keyname, value)

value : to return if key does not exist / 키값이 없을 때 value를 반환함

test2.get(key, [])

위의 코드는
딕셔너리 test2에서 key값이 key인 요소가 (1) 있으면 그 key값의 value를 반환 (2) 없으면 []를 반환

test2[key] = test2.get(key,[]) + [str]

딕셔너리 test2에 key값이 key인 요소의 value값에 str을 추가
value의 default는 무조건 빈 리스트 <- key값이 같은 str은 리스트에 추가됨

profile
Make my day !

0개의 댓글

관련 채용 정보