-
github.com/onlybooks/algorithm-interview
블로그를 🌸단장하고 나니 아침부터 포스팅하고싶어졌다 ~~😄😍😍😄
로그파일이 들어올 때, 조건에 맞게 재정렬하는 코드를 설계하라. 조건은 다음과 같다. 1. 로그의 가장 앞 부분은 식별자 2. 문자로 구성된 로그가 숫자 로그보다 앞에 3. 식별자는 순서에 영향을 끼치지않지만 동일 문자의 경우 식별자 순으로 함 4. 숫자 로그는 입력순으로 log=["dig1 8151","let1 art can"..]
1. 람다+연산자 이용하기
2번 조건을 isdigit()을 이용하여 해결할 수 있다.
if log.split()[1].isdigit(): digits.append(log) else: leftters.append(log) # 아 이부분 코드 이해가 안갔는데, 그럼 조건에 하나가 더 추가되어야 했던거 아닌가.. # 식별자를 제외한 나머지 문자도 순서대로 정렬하라. 라는 letters.sort(key=lambda x:(x.split()[1:], x.split()[0])) return letters + digits
class Solution: def reorderLogFiles(self, logs: List[str]) -> List[str]: letters, digits = [],[] for log in logs: if log.split()[1].isdigit(): digits.append(log) else: letters.append(log) letters.sort(key = lambda x:(x.split()[1:],x.split()[0])) return letters+digits
프로그래머스에서 정렬문제가 있다.
def solution(strings, n): return strings.sort(key=lambda x:(x[n],x))
'2020년 > 코테' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 그룹 애너그램 (0) 2020.12.19 [파이썬 알고리즘 인터뷰] 가장 흔한 단어 (0) 2020.12.19 [파이썬 알고리즘 인터뷰] 문자열 뒤집기 (0) 2020.12.15 [파이썬 알고리즘 인터뷰] 유효한 팰린드롬 (0) 2020.12.13 [파이썬 알고리즘 인터뷰] 빅오, 자료형 (0) 2020.12.08