저번 시간에 tuple을 이용해서 다중 정렬을 손쉽게 하는 법을 배웠습니다. 특히 정수는 오름차순 반대인 내림차순으로 비교하기 위해서, 앞에 -만 붙이면 매우 간단하게 비교할 수 있어요. 그런데 문자열은 그게 되지 않습니다. 문제 상황을 보면서 어떻게 구현하면 좋을지 천천히 생각해 보도록 합시다. 개인적으로 아래 두 개의 글을 먼저 보고 오시는 게 좋아 보입니다. [관련글] tuple로 정렬 기준을 떨어트리는 방법을 알아봅시다. 안정 정렬에 대해서 알아봅시다. solution 함수를 구현해야 하는데요. list에는 튜플이 들어 있어요. 튜플의 1번째, 2번째 요소는 소문자로만 이루어진 문자열이 들어 있어요. 1차 정렬 기준은, 1번째 요소를 사전순 내림차순으로 돌립니다. 만약에, 1번째 요소가 같은 문자..
다중정렬 검색 결과
제가 개최한 코딩 테스트 후기 글들을 꾸준히 보고 있는데요. 이 글들을 잘 보면, 생각보다 배울 만한 것들이 많았습니다. 제가 낸 문제 중에, 가희와 파일 탐색기가 있었는데요. 이 글에서는 풀이 보다는 정렬 조건이 복잡할 때, 아 이러한 패턴이 있었구나. 정도만 알고 넘어가셔도 괜찮겠다 싶어서 가지고 오게 되었습니다. 사실 이 글에서 언급하는 방법 말고도 우선순위 역순으로 n회 정렬한다던지와 같은 방법도 있는데, 이에 대해서는 나중에 언급할 기회가 있을 듯 싶어요. dsu 패턴은 생각보다 복잡하지 않아요. python에서는 여러 비교 기준이 있는 문제에서 tuple을 이용하게 됩니다. dsu는 3가지 과정으로 나뉩니다. 먼저, 데이터를 가공합니다. 어떻게 가공해야 할까요? list나 tuple은 문서에 ..
7월 18일에 제가 운영한 2회 코딩테스트가 열렸습니다. 이 중에, 1번 문제는 다중 정렬을 이용한 문제였습니다. 백준에서 정렬 분류로 치면 나오는 문제들을 풀 수 있다면 풀 수 있게 해서 그런지, 정답자 수가 많은 편에 속하는 문제가 되었습니다. 그 이후에도 사람들이 꾸준히 많이 풀어주셨는데요. 저는 name과 확장자, os에서 확장자를 인식하는지 여부를 3개의 플래그로 만들어서 관리했습니다. 그런데, 다른 분이 Comparator와 람다를 잘 이용하면, 코드도 줄일 수 있고, 단순화 된다는 조언을 주셨습니다. 먼저, myFile 클래스를 보겠습니다. name과 ext만 필드에 있습니다. 생성자는 name과 ext를 받아서, 확장자와 네임을 생성이 될 때 채워넣습니다. 그 이후로 setName, set..
최근댓글