코드로 우주평화

Where my anagrams at? 본문

나는 이렇게 학습한다/Algorithm & SQL

Where my anagrams at?

daco2020 2022. 2. 19. 10:53
반응형

문제 설명

What is an anagram? Well, two words are anagrams of each other if they both contain the same letters. For example:

'abba' & 'baab' == true

'abba' & 'bbaa' == true

'abba' & 'abbba' == false

'abba' & 'abca' == false

Write a function that will find all the anagrams of a word from a list. You will be given two inputs a word and an array with words. You should return an array of all the anagrams or an empty array if there are none. For example:

anagrams('abba', ['aabb', 'abcd', 'bbaa', 'dada']) => ['aabb', 'bbaa']

anagrams('racer', ['crazer', 'carer', 'racar', 'caers', 'racer']) => ['carer', 'racer']

anagrams('laser', ['lazing', 'lazy',  'lacer']) => []

Note for Go
For Go: Empty string slice is expected when there are no anagrams found.

 

 

해결 방법

1. 기준 단어를 정렬한다.

2. 단어 리스트의 요소를 정렬한다.

3. 서로 알파벳이 일치하는지 확인한다.

4. 일치하는 것만 리스트에 담는다.

 

def anagrams(word, words):
    sorted_word = sorted(word)
    return [i for i in words if sorted_word == sorted(i)]

 

기준 단어는 미리 변수로 할당해야 반복적인 연산을 피할 수 있다.

 

컴프리핸션으로 간단하게 작성할 수 있었다.

 

 

 

 

 

반응형

'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글

Count characters in your string  (0) 2022.02.21
Human Readable Time  (0) 2022.02.20
Write Number in Expanded Form  (0) 2022.02.18
Split String  (0) 2022.02.17
Bit Counting  (0) 2022.02.16