728x90
๋ฐ์ํ
"""
์ธ ์ฐจ๋ก์ ์ฝ๋ฉ ํ
์คํธ์ ๋ ์ฐจ๋ก์ ๋ฉด์ ์ด๋ผ๋
๊ธฐ๋๊ธด๋ธ๋ผ์ธ๋ ๊ณต์ฑ๋ฅผ ๋ฌด์ฌํ ํต๊ณผํด ์นด์นด์ค์ ์
์ฌํ ๋ฌด์ง๋
ํ์ผ ์ ์ฅ์ ์๋ฒ ๊ด๋ฆฌ๋ฅผ ๋งก๊ฒ ๋์๋ค.
์ ์ฅ์ ์๋ฒ์๋ ํ๋ก๊ทธ๋จ์ ๊ณผ๊ฑฐ ๋ฒ์ ์ ๋ชจ๋ ๋ด๊ณ ์์ด,
์ด๋ฆ ์์ผ๋ก ์ ๋ ฌ๋ ํ์ผ ๋ชฉ๋ก์ ๋ณด๊ธฐ๊ฐ ๋ถํธํ๋ค.
ํ์ผ์ ์ด๋ฆ ์์ผ๋ก ์ ๋ ฌํ๋ฉด ๋์ค์ ๋ง๋ค์ด์ง
ver-10.zip์ด ver-9.zip๋ณด๋ค ๋จผ์ ํ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
(์ค๋ต)
ํ์ผ๋ช
์ ์ฐ์ HEAD ๋ถ๋ถ์ ๊ธฐ์ค์ผ๋ก ์ฌ์ ์์ผ๋ก ์ ๋ ฌํ๋ค.
์ด๋, ๋ฌธ์์ด ๋น๊ต ์ ๋์๋ฌธ์ ๊ตฌ๋ถ์ ํ์ง ์๋๋ค.
MUZI์ muzi, MuZi๋ ์ ๋ ฌ ์์ ๊ฐ์ ์์๋ก ์ทจ๊ธ๋๋ค.
ํ์ผ๋ช
์ HEAD ๋ถ๋ถ์ด ๋์๋ฌธ์ ์ฐจ์ด ์ธ์๋ ๊ฐ์ ๊ฒฝ์ฐ,
NUMBER์ ์ซ์ ์์ผ๋ก ์ ๋ ฌํ๋ค. 9 < 10 < 0011 < 012 < 13 < 014 ์์ผ๋ก ์ ๋ ฌ๋๋ค.
์ซ์ ์์ 0์ ๋ฌด์๋๋ฉฐ, 012์ 12๋ ์ ๋ ฌ ์์ ๊ฐ์ ๊ฐ์ ๊ฐ์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
๋ ํ์ผ์ HEAD ๋ถ๋ถ๊ณผ, NUMBER์ ์ซ์๋ ๊ฐ์ ๊ฒฝ์ฐ, ์๋ ์
๋ ฅ์ ์ฃผ์ด์ง ์์๋ฅผ ์ ์งํ๋ค.
MUZI01.zip๊ณผ muzi1.png๊ฐ ์
๋ ฅ์ผ๋ก ๋ค์ด์ค๋ฉด, ์ ๋ ฌ ํ์๋ ์
๋ ฅ ์
์ฃผ์ด์ง ๋ ํ์ผ์ ์์๊ฐ ๋ฐ๋์ด์๋ ์ ๋๋ค.
(ํ๋ต)
"""
def solution(files):
decom = []
for index, file in enumerate(files):
file = file.lower()
decom.append([index,'',''])
number_section = False
for w in file:
if w.isdigit():
number_section = True
decom[-1][2] += w
else:
if number_section:
break
decom[-1][1] += w
decom[-1][2] = int(decom[-1][2])
decom = sorted(decom, key=lambda x: (x[1],x[2],x[0]))
return [files[v[0]] for v in decom]
"""
๊ธฐ์ค์ด ์ธ์ธํ์ฌ ๊ทธ๋ ๊ฒ ํ์๋ค. decomposition(๋ถํด)์ ์ฝ์์ธ decom์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์๋ค.
๋ถํดํ ๋ฌธ์ฅ์ ์ธ๋ฑ์ค, head์ number์ ๋ด์ '','' -> [index,'','']๋ก ์์๊ฐ ๊ตฌ์ฑ๋๋ค.
- 31 line
head๋ ๋์๋ฌธ์๊ตฌ๋ถ์ ํ์ง ์์ผ๋ฏ๋ก ์ ๋ถ ์๋ฌธ์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์๋ค.
- 34~42 line
file์์ ํ๊ธ์์ฉ ๊ฐ์ง๊ณ ์ค๋ฉด์ head์๋ ์ซ์๊ฐ ๋ค์ด๊ฐ์ง ์๊ณ ,
number์๋ง ์ซ์๊ฐ ๋ค์ด๊ฐ๊ธฐ๋๋ฌธ์ ์ซ์๋ผ๋ฉด number_section์ ๋ค์ด์๋ค๊ณ ํ๋ค.
ex) file -> f-50.txt ์ด๋ผ๋ฉด
์ฒ์์ f-๊น์ง๋ else๋ฌธ์ผ๋ก ๋ค์ด๊ฐ์ head๋ถ๋ถ์ ๋ฌธ์๊ฐ ๋ค์ด๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ 5์์ number_section=True๊ฐ ๋๋ฉด์ number๋ถ๋ถ์ ์ซ์๊ฐ ๋ค์ด๊ฐ๋ค.
๋ค์ .์์ ์ซ์๊ฐ ์๋๊ณ number_section์ true๊ธฐ ๋๋ฌธ์ for๋ฌธ์ด ๋๋๋ค.
tail์ ๊ฒ์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๋ถํดํ์ง ์์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ 0012, 12๊ฐ ๊ฐ๋ค๊ณ ๋ด์ผํ๊ธฐ ๋๋ฌธ์ int๋ก ๋ฐ๊พธ์ด์ฃผ์๋ค.
- 44 line
decom์ ์ํธํ ๋ head๋ฅผ ์ฌ์ ์์, ๊ทธ๋ค์์ number์์, ๋ง์ง๋ง์ index์์์ด๋ค.
sorted(list, key=lambda x: (x[1],x[2],x[0]))์ ๊ทธ๋ ๊ฒ ์ํธํ๋ผ๋ ์๋ฆฌ์ด๋ค.
key๋ถ๋ถ์ sort๋ฅผ ํ ๋ ๋ฆฌ์คํธ์์ ์์ํ๋๋ฅผ x๋ผ๊ณ ์นํํ๋ค.
๋๋ ์์๊ฐ [index,head,number] ์ด๊ธฐ ๋๋ฌธ์ x[1]์ head, x[2]๋ number๊ฐ ๋๋ค.
- 45 line
๋ง์ง๋ง์ผ๋ก decom์์ ์ํธ๋์ด์ง ์์๋๋ก index๋ถ๋ถ์ ๊ฐ์ง๊ณ ์์ ๋ฆฌํดํด์ค๋ค.
"""
728x90
๋ฐ์ํ
๋๊ธ