Published:
Updated:

  • Reference
  • ์ˆซ์ž์™€ ๋ฌธ์ž ๋”ฐ๋กœ ์ €์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ž.
  • ๋žŒ๋‹ค ์ •๋ ฌ์„ ์ž˜ ํ™œ์šฉํ•˜์ž.


Solution

from typing import List


class Solution:
    # logs: ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌ (๋ฌธ์ž ๋จผ์ € ์ •๋ ฌ๋˜๊ณ , ์ˆซ์ž๋Š” ์ƒ๋Œ€์ ์ธ ์ˆœ์„œ ์œ ์ง€)
    # ๋ฌธ์ž์™€ ์ˆซ์ž์˜ ์ˆœ์„œ ์ •๋ ฌ ๋ฌธ์ œ๋‹ˆ๊นŒ lambda ์จ๋ณด์ž!
    def reorderLogFiles(self, logs: List[str]) -> List[str]:
        letters = []
        digits = []

        for log in logs:
            identifier, words = log.split(" ", 1)
            if log.split()[1].isalpha():
                letters.append((identifier, words))
            else:
                digits.append(log)

        letters.sort(key=lambda x: (x[1], x[0]))

        real_letters = []
        for letter in letters:
            real_letters.append(" ".join(letter))

        return real_letters + digits


print(Solution().reorderLogFiles(["dig1 8 1 5 1", "let1 art can", "dig2 3 6", "let2 own kit dig", "let3 art zero"]))

Another Solution

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)

        # x.split()[1:] -> ์„ ์ˆœ์œ„ ์ •๋ ฌ์ธ ๋“ฏ? ์Šฌ๋ผ์ด์‹ฑ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๊ฑด ์ฒ˜์Œ ๋ด„
        letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
    
        return letters + digits

Leave a comment