본문 바로가기

sort3

[프로그래머스] 전화번호 목록 / 파이썬 / Python / 문자열 정렬 💡solutions ) 💬 sorted()메소드를 사용하여 phone_book을 먼저 정렬한다 -> 문자열 정렬이기 때문에 12, 120, 13 이런식으로 정렬된다. 숫자의 절대적인 크기가 아닌 사전 정렬 방식으로 정렬된다. 💬 정렬이 됐다면 첫 번째 전화번호부터 탐색을 시작하는데, 그 뒤 바로 인접한 전화번호의 접두어가 되는지 비교한다. 💬 이때 인접한 전화번호만 비교하면 되는 이유는 사전방식으로 문자열을 이미 정렬했기 때문이다. 예를 들어 12, 139, 160 식으로 정렬이 되기 때문에 12와 139를 비교했을 때 12가 139의 접두어가 되지 못한다면 12는 그 다음 전화번호인 160의 접두어도 마찬가지로 되지 못하기 때문에 비교할 필요가 없다. 👨‍💻code ) def solution(phone.. 2021. 9. 6.
[프로그래머스] 가장 큰 수/ 파이썬/ Python/ 정렬/ sort 💡solutions ) ✅ 사용한 주요 함수는 lambda, map, sort , join이다. ✅ map 함수는 리스트의 요소를 지정된 함수로 처리해준다. 이 문제에서는 입력 받은 숫자 리스트를 각 요소별로 str 변환해주었다. sort에서 각 자릿수 별로 값을 비교하기 위해 문자열로 변환했다. ✅ sort 함수로 특정 key를 기준으로 정렬. 입력으로 주어지는 숫자가 1000 이하이기 때문에 key값으로 람다함수를 써줬다. x: x*3는 문자열에 3을 곱해주면 문자열을 3개씩 반복해서 나열한 것으로 나타냄. 값을 비교한 후 정렬한다. e.g.) 값이 5였으면 555로 값을 비교해서 정렬 ✅ join 함수는 리스트에 특정 구분자를 추가하여 문자열로 변환함. 여기서는 공백 없이 문자열로 합쳤다. ✅ 처음.. 2020. 8. 18.
[프로그래머스] 전화번호 목록 /파이썬 /python /해시 💡solutions ) ✅ 처음에 테스트케이스 8,9번만 통과하지 못해서 수정한 부분이 -> phone_book 리스트를 sort()로 정렬해주는 것이다. ✅ 정렬 메소드가 없는 상태에서 리스트에 1234, 123 순서로 전화번호가 들어 있다면 false를 리턴해야 하지만 true를 반환하게 되는 게 문제가 된다. 🎫code ) def solution(phone_book): phone_book.sort() for i in range(len(phone_book)): length = len(phone_book[i]) for j in range(i+1, len(phone_book)): tmp = phone_book[i] next = phone_book[j][0:length] print(tmp, next) if.. 2020. 8. 11.