๐Ÿค— [3์ฐจ] ํŒŒ์ผ๋ช… ์ •๋ ฌ

Jake_Youngยท2020๋…„ 9์›” 1์ผ
0

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ, Coding Test

๋ชฉ๋ก ๋ณด๊ธฐ
5/23
post-thumbnail

๐Ÿ‘‰๋ฌธ์ œ ๋งํฌ


์ •๋‹ต ์ฝ”๋“œ ๋ฐ ํ•ด์„ค

def solution(files):
    answer = []
    for file in files:
# transformed =[์›๋ž˜ ๋‹จ์–ด, ์†Œ๋ฌธ์ž๋กœ ๋งŒ๋“  HEAD, ์•ž์— ๋‚˜์˜ค๋Š” 0์„ ์ œ์™ธํ•œ NUMBER]
        transeformed = []
# ์ˆซ์ž๊ฐ€ ๋‚˜์˜ค๊ธฐ ์‹œ์ž‘ํ•˜๋Š” index = first_index
        first_index = 0
# ์ˆซ์ž๊ฐ€ ๋๋‚˜๋Š” index + 1 = second_index
        second_index = 0
        for index in range(len(file)):
# ๋ฌธ์ž๊ฐ€ ์ˆซ์ž์ด๋ฉด ๊ทธ๊ณณ์ด first_index
            if file[index].isdigit():
                first_index = index
                break
# ์ˆซ์ž๋Š” 5์ž๋ฆฌ ์ˆ˜๊นŒ์ง€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ž˜ ์ •ํ•ด์•ผ ํ•œ๋‹ค
        for index in range(first_index, min(len(file), first_index + 5)):
# ๋ฌธ์ž๊ฐ€ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด ๊ทธ๊ณณ์ด second_index
            if not file[index].isdigit():
                second_index = index
                break
        else:
# TAIL์ด ์—†์„ ๋•Œ๋Š” ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ์ž˜ ์ •ํ•ด์•ผ ํ•œ๋‹ค
            second_index = min(len(file), first_index + 5)            
        transeformed.append(file)
        transeformed.append(file[:first_index].lower())
        transeformed.append(int(file[first_index:second_index]))
# ์ด๋ ‡๊ฒŒ ๊ตฌํ•œ transformed๋ฅผ answer์— ๋„ฃ์–ด์ค€๋‹ค
        answer.append(transeformed)
# ์ด๋ ‡๊ฒŒ ๊ตฌํ•œ answer๋ฅผ HEAD๋กœ ๋จผ์ € ๋‚˜๋ˆ„๊ณ  ๋™์ˆœ์ด๋ฉด NUMBER๋กœ ์ •๋ ฌํ•œ๋‹ค
# ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์›๋ณธ transformed[0]๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•œ๋‹ค
    return list(map(lambda y: y[0], sorted(answer, key=lambda x: (x[1], x[2]))))
profile
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํŒŒ์ด์ฌ ๊ทธ๋ฆฌ๊ณ  ์ปดํ“จํ„ฐ์™€ ๋„คํŠธ์›Œํฌ

0๊ฐœ์˜ ๋Œ“๊ธ€