https://school.programmers.co.kr/learn/courses/30/lessons/17686#
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
1. ํ์ผ๋ณ๋ก [head, number, ์ ๋ ฌ ์ ์ธ๋ฑ์ค] ๋ก ๊ตฌ๋ถํ์ฌ ์๋ก์ด ๋ฆฌ์คํธ์ ์ถ๊ฐํ๊ธฐ
- ๊ฐ ํ์ผ์ ์ค๊ฐ ์ซ์๋ถ๋ถ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ๋๋
- ์ด๋ head๋ ์๋ฌธ์๋ก ๋ฐ๊พธ์ด์ ์ง์ด๋ฃ์์ ( ๋์๋ฌธ์ ๊ตฌ๋ถ์ ์ ํ๋ฏ๋ก )
- 0์ ๋ฌด์ํ๊ธฐ ์ํด์ number๋ string์ด ์๋ int๋ก ์ง์ด๋ฃ์์
2. ๋ฌธ์ ์์ ์ ์ํ ๊ธฐ์ค๋๋ก, ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌ
3. ์๋ ๋ฆฌ์คํธ๋ก๋ถํฐ ํ์ผ์ fullname์ answer์ ์ฐจ๋ก๋ก ์ถ๊ฐ
- ์๋ก์ด ๋ฆฌ์คํธ์ ์ ๋ ฌ ์ ์ธ๋ฑ์ค ์ ๋ณด ์ด์ฉ
def solution(files):
answer = []
# 1. ํ์ผ๋ช
์ head, number, tail ๋ก ๋๋๊ธฐ
newfiles = []
original = 0
for file in files:
n = len(file)
idx1 = n
idx2 = n
for i in range(n):
if file[i].isdigit():
idx1 = min(idx1, i)
if i > idx1 and file[i].isdigit()==False:
idx2 = i
break
newfiles.append([file[:idx1].lower(),int(file[idx1:idx2]),original])
#### tail์ ๋ด์ฉ์ ์ค์ํ์ง ์์์ files์์์ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํจ
original += 1
# 2. ์ ๋ ฌ
newfiles.sort(key = lambda x: (x[0], x[1], x[2]))
for file in newfiles:
answer.append(files[file[2]])
return answer
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > -' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ํ์ ์๊ฐ ์ด๋ (0) | 2023.07.07 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค]ํ๋ฐฐ์์ (0) | 2023.06.23 |
[ํ๋ก๊ทธ๋๋จธ์ค]2๊ฐ ์ดํ๋ก ๋ค๋ฅธ ๋นํธ (0) | 2023.06.22 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ (0) | 2023.06.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.06.09 |