[Code Wars] Sort the comments

문제

https://www.codewars.com/kata/58a0f18091e53d2ad1000039

나의 풀이

다른 사람의 풀이

  1. Best Practice 1등의 풀이

    from distutils.version import LooseVersion
        
        
    def sort_ranks(ranks):
        return sorted(ranks, key=LooseVersion)
    

    distutils 는 파이썬 모듈을 설치하는데 사용이되는 모듈이다. 사실 이 모듈은 한번도 사용해보지 않았다. 구글링해서 모듈의 용도를 보고 나서 왜 굳이 이걸 썼을까? 라는 생각이 들었다.

    그러나 LooseVersion 을 찾아보고 나서는 이해를 할 수 있게 되었다.LooseVersionVersion numbering 을 해준다. numeric componentsnumerically 하게, alphabetic componentslexically 하게 비교해준다.

    따라서 sortedkeyLooseVersion 로 하면서, 위의 기준대로 정렬이 가능하다.

  2. 그외 풀이

    def sort_ranks(ranks):
      return sorted(ranks, key=lambda s: tuple(int(x) for x in s.split('.')))
    

    sortedkeylambda 를 통해서 표현했다. 위와 같이 했을 때, 만들어지는 tuple (int element를 가짐)을 기준으로 정렬이 될 것이기 때문에 의도대로 정렬이 될 것 이다.

    def sort_ranks(ranks):
        return sorted(ranks, key=lambda x: map(int, x.split('.')))
    

    sortedkeylambda 를 통해서 표현하는데, 위와 다르게 map 을 이용 하였다. 위와 거의 동일한 방식인데, 위보다는 아래가 더 깔끔하고 명확한 것 같다.

회고