[LeetCode] 937. Reorder Data in Log Files (python, javascript)

728x90
반응형

1. python

class Solution:
    def reorderLogFiles(self, logs: List[str]) -> List[str]:
        nums=[]
        letters=[]
        for log in logs:
            if log.split()[1].isdigit():
                nums.append(log)
            else:
                letters.append(log)
                # slice로 잘라서 그 후를 모두 지정할 수 있다 
        letters.sort(key=lambda x:(x.split()[1:],x.split()[0]))
        # print(nums)
        # print(letters)
        return letters+nums

2. javascript

 

/**
 * @param {string[]} logs
 * @return {string[]}
 */
var reorderLogFiles = function(logs) {
    letter=[]
    digit=[]
    //띄어쓰기 기준으로 배열로 만들어서 두 번째 수가 숫자인지 문자인지 판별하여 
    // 두개의 배열로 나누다 
    logs.forEach(log=>{
        l=log.split(' ');
        if(/\d/.test(l[1])){ //숫자인지 검사
        // if(l[1]>='0' && l[1]<='9'){
            digit.push(log)
        }else{
            letter.push(log)
        }
    })

    letter.sort((a,b)=>{//식별자 뒤의 수를 기준으로 먼저 정렬하고 만약 같으면 식별자 기준 정렬
        let aa=a.substr(a.indexOf(' ')+1);
        let bb=b.substr(b.indexOf(' ')+1);
        if(aa!==bb){//식별자 외 수를 정렬 
            return aa.localeCompare(bb);
        }else{
            return a.localeCompare(b);
        }
    });
    return letter.concat(digit)
};
728x90
반응형

'Leetcode' 카테고리의 다른 글

LeetCode - Array Partition 1  (0) 2020.10.06
LeetCode. Group Anagrams (python)  (0) 2020.10.06
22. Generate Parentheses  (0) 2020.10.03
680. Valid Palindrome II  (0) 2020.10.03
[Leetcode] 819. most common word (python, javasciript)  (0) 2020.09.29
TAGS.

Comments