๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/Programmers

[Programmers] ํŒŒ์ผ๋ช… ์ •๋ ฌ

 

 

 

 

ํ•ด์„ค ์ฝ”๋“œ 

 

def solution(files):
    ans = []
    head, number, tail = '','',''
    
    for file in files:
        for i in range(len(file)):
            # ์šฐ์„  ํŒŒ์ผ์„ head์™€ number๋กœ๋งŒ ๋‚˜๋ˆˆ๋‹ค. 
            if file[i].isdigit():
                head = file[:i]
                number = file[i:]
                
                # number์„ ๋‹ค์‹œ number์™€ tail๋กœ ๋‚˜๋ˆˆ๋‹ค. 
                for k in range(len(number)):
                    if not number[k].isdigit():
                        tail = number[k:]
                        number = number[:k]
                        break 
                
                # ๋ฐฐ์—ด์— ๊ฐ๊ฐ์˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ ํ›„ head,number,tail๊ฐ’์„ resetํ•œ๋‹ค. 
                ans.append([head,number,tail])
                head,number,tail = '', '', ''
                break
    
    # ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์„ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ ๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ํ›„ ์ˆซ์ž์˜ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. 
    ans.sort(key = lambda x: (x[0].lower(),int(x[1])))
    return [''.join(x) for x in ans]
๋ถ„์„ > ํ’€๊ธด ํ’€์—ˆ์œผ๋‚˜ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ ๋ฌธ์ œ. ํ•ด์„ค ์ฝ”๋“œ์—์„œ ์–ป์€ ์ข‹์€ ์•„์ด๋””์–ด๋Š” ์• ์ดˆ์— head์™€ number ๋ถ€๋ถ„์„ file๋‚ด ์ˆซ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  number์„ ๋‹ค์‹œ ์ง„์งœ number์™€ tail๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ’์„ ์–ป์€ ๊ฒƒ์ด๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ head์™€ number์„ ๊ตฌํ•œ ํ›„ ์›๋ž˜ file ๊ฐ’์—์„œ head์™€ number๊ฐ’์„ ๊ณต๋ฐฑ์œผ๋กœ replaceํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ–ˆ์—ˆ๋Š”๋ฐ, ์ด ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ ๊ทธ๋ƒฅ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‘ ๊ฐœ๋กœ ๋ถ„๋ฆฌ ํ›„ ๋‹ค์‹œ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํƒํ•˜๋ฉด ํ›จ์”ฌ ํšจ์œจ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์ •๋ ฌํ•œ ํ›„ ์ˆซ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์€ ๋ฌธ์ž๋ฅผ ๊ทธ๋ƒฅ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค๋Š” ๋œป์ด๊ธฐ ๋•Œ๋ฌธ์— .lower์„ ์ด์šฉํ•ด ์ •๋ ฌํ•ด์ฃผ๊ณ  ํ˜„์žฌ ๊ฐ ๊ฐ’์€ ๋ฌธ์ž์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ˆซ์ž ๋น„๊ต๋ฅผ ์œ„ํ•ด ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ”๊ฟ”์ค€ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

 

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - [3์ฐจ] ํŒŒ์ผ๋ช… ์ •๋ ฌ

ํŒŒ์ผ๋ช… ์ •๋ ฌ ์„ธ ์ฐจ๋ก€์˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์™€ ๋‘ ์ฐจ๋ก€์˜ ๋ฉด์ ‘์ด๋ผ๋Š” ๊ธฐ๋‚˜๊ธด ๋ธ”๋ผ์ธ๋“œ ๊ณต์ฑ„๋ฅผ ๋ฌด์‚ฌํžˆ ํ†ต๊ณผํ•ด ์นด์นด์˜ค์— ์ž…์‚ฌํ•œ ๋ฌด์ง€๋Š” ํŒŒ์ผ ์ €์žฅ์†Œ ์„œ๋ฒ„ ๊ด€๋ฆฌ๋ฅผ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค. ์ €์žฅ์†Œ ์„œ๋ฒ„์—๋Š” ํ”„๋กœ๊ทธ๋žจ

programmers.co.kr

 

'Algorithm > Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Programmers] ๊ตฌ๋ช…๋ณดํŠธ  (0) 2022.05.19
[Programmers] ์†Œ์ˆ˜ ์ฐพ๊ธฐ  (0) 2022.05.19
[Programmers] ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ  (0) 2022.05.19
[Programmers] ์œ„์žฅ  (0) 2022.05.18
[Programmers] K๋ฒˆ์งธ ์ˆ˜  (0) 2022.05.07