๋ฆฌํŠธ์ฝ”๋“œ LeetCode 937 Reorder Data in Log Files ๋ฌธ์ œ์˜ ํŒŒ์ด์ฌ python ํ’€์ด์ž…๋‹ˆ๋‹ค.

https://leetcode.com/problems/reorder-data-in-log-files/description/



๋ฌธ์ œ

๋กœ๊ทธ๋ฅผ ์žฌ์ •๋ ฌํ•˜๋ผ. ๊ธฐ์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ๋กœ๊ทธ์˜ ๊ฐ€์žฅ ์•ž ๋ถ€๋ถ„์€ ์‹๋ณ„์ž
  2. ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋กœ๊ทธ๊ฐ€ ์ˆซ์ž ๋กœ๊ทธ๋ณด๋‹ค ์•ž์— ์˜จ๋‹ค
  3. ์‹๋ณ„์ž๋Š” ์ˆœ์„œ์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š์ง€๋งŒ, ๋ฌธ์ž๊ฐ€ ๋™์ผํ•  ๊ฒฝ์šฐ ์‹๋ณ„์ž ์ˆœ์œผ๋กœ ํ•œ๋‹ค
  4. ์ˆซ์ž ๋กœ๊ทธ๋Š” ์ž…๋ ฅ ์ˆœ์„œ๋Œ€๋กœ ํ•œ๋‹ค


Constraints

  • 1 <= logs.length <= 100
  • 3 <= logs[i].length <= 100
  • All the tokens ofย logs[i]ย are separated by aย singleย space.
  • logs[i]ย is guaranteed to have an identifier and at least one word after the identifier.




ํ’€์ด

๋žŒ๋‹ค ํ‘œํ˜„์‹๊ณผ + ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด์„œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

# ๋กœ๊ทธ ํŒŒ์ผ ์žฌ์ •๋ ฌ : ๋žŒ๋‹ค์™€ + ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉ
 
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)
 
ย  ย  ย  ย  # 2๊ฐœ์˜ ํ‚ค๋ฅผ ๋žŒ๋‹ค ํ‘œํ˜„์‹์œผ๋กœ ์ •๋ ฌ
ย  ย  ย  ย  letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
 
ย  ย  ย  ย  return letters + digits
 

๋žŒ๋‹ค ํ‘œํ˜„์‹

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

letters ๋Š” [โ€œlet1 art canโ€,โ€œdig2 3 6โ€,โ€œlet2 own kit digโ€,โ€œlet3 art zeroโ€] ์ด๋Ÿฐ ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ์œผ๋‹ˆ, x.split()[0]๋Š” ์‹๋ณ„์ž, x.split()[1:]๋Š” ์‹๋ณ„์ž ๋’ค์˜ ๋ฌธ์ž ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ์—์„œ ์ œ์‹œํ•˜๊ธฐ๋กœ, ์‹๋ณ„์ž๋Š” ์ˆœ์„œ์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๊ณ  ๋ฌธ์ž ์ˆœ์„œ๋กœ ์ •๋ ฌํ•˜๋˜, ๋ฌธ์ž๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ ์‹๋ณ„์ž ์ˆœ์œผ๋กœ ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋žŒ๋‹ค์‹์— 2๊ฐœ์˜ ํ‚ค๋ฅผ ์ค๋‹ˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ์ •๋ ฌ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž ๋กœ๊ทธ, ํ›„์ˆœ์œ„ ์ •๋ ฌ ๊ธฐ์ค€์œผ๋กœ ์‹๋ณ„์ž๋ฅผ ์ฃผ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.


์ดํ›„ ์ˆซ์ž ๋กœ๊ทธ๋Š” ์ž…๋ ฅ ์ˆœ์„œ๋Œ€๋กœ ํ•œ๋‹ค๊ณ  ํ•˜์˜€์œผ๋ฏ€๋กœ, digits ๋ฆฌ์ŠคํŠธ๋Š” ๊ทธ๋Œ€๋กœ ์ด์–ด๋ถ™์ด๋ฉด ์žฌ์ •๋ ฌ์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.