Algorithm/Implement

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/ ๋ฌธ์ž์—ด ์••์ถ• (๋‹ค์‹œ)

์ •ํ˜ธ๋‚˜ 2024. 12. 28. 22:05

๐Ÿ“• ๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/60057

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

 

 

๐Ÿ“„ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ํ’€์ด

# 1. 1~len(s)๊ธ€์ž์”ฉ ๋Š๊ธฐ
# 2. ๋Š์€ ๋‹ค์Œ ๋ฌธ์ž์™€ ๊ฐ™์€์ง€ ํ™•์ธ
# 3. ๊ฐ™์œผ๋ฉด count +1ํ•˜๊ธฐ
# 4. ์••์ถ• ๋ฌธ์ž์—ด compress ์— str(count)+๋ฌธ์ž์—ด๋กœ ์ถ”๊ฐ€
# 5. ๊ธธ์ด ์ตœ์†Œ๊ฐ’ min ๊ตฌํ•˜๊ธฐ

๐Ÿ’ป ๋‚ด ์ฝ”๋“œ

 

def solution(s):
    # ์ดˆ๊ธฐ ์ตœ์†Œ ๊ธธ์ด๋Š” ์›๋ณธ ๋ฌธ์ž์—ด ๊ธธ์ด
    answer = len(s)
    
    # ์••์ถ• ๋‹จ์œ„ ํฌ๊ธฐ 1๋ถ€ํ„ฐ len(s)๊นŒ์ง€ ์‹œ๋„
    for i in range(1, len(s) + 1):
        tmp = s[:i]
        count = 1
        compress = ''
        
        # i ๋‹จ์œ„๋กœ ๋ฌธ์ž์—ด์„ ํ™•์ธ
        for j in range(i, len(s), i):
            # ํ˜„์žฌ ๋‹จ์œ„์™€ ๋‹ค์Œ ๋‹จ์œ„๊ฐ€ ๊ฐ™์œผ๋ฉด count ์ฆ๊ฐ€           
            if tmp == s[j:j+i]:
                count += 1
            else:
                # ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ 1๋ณด๋‹ค ํฌ๋ฉด(์ด์ „์— ์ค‘๋ณต ๋ฌธ์ž์—ด ์กด์žฌํ–ˆ์œผ๋ฉด) count ์ถ”๊ฐ€
                if count > 1:
                    compress += str(count) + tmp
                # ์ด์ „์— ์ค‘๋ณต ๋ฌธ์ž์—ด ์กด์žฌํ•˜์ง€ ์•Š์•˜์œผ๋ฉด    
                else:
                    compress += tmp
                # ๋‹ค์Œ ๋‹จ์œ„๋กœ ์ดˆ๊ธฐํ™”
                tmp = s[j:j+i]
                count = 1
        
        # ๋ฃจํ”„ ๋‚ด์—์„œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋งˆ์ง€๋ง‰ ๋‚จ์€ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ
        if count > 1:
            compress += str(count) + tmp
        else:
            compress += tmp
        
        # ์ตœ์†Œ ๊ธธ์ด ๊ฐฑ์‹ 
        answer = min(answer, len(compress))
    
    return answer

 

๐Ÿ’ป ๋‹ต์•ˆ

  //

 

๐Ÿ“ ์ฐธ๊ณ ์ž๋ฃŒ

 

 

 

 

https://ljhyunstory.tistory.com/18

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ --- ๋ฌธ์ž์—ด ์••์ถ•-(ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / ํŒŒ์ด์ฌ)

https://programmers.co.kr/learn/courses/30/lessons/60057 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฌธ์ž์—ด ์••์ถ• ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋˜๊ณ  ์‹ถ์€ "์–ดํ”ผ์น˜"๋Š” ๋ฌธ์ž์—ด์„ ์••์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋Œ€๋Ÿ‰์˜ ๋ฐ

ljhyunstory.tistory.com

 

 

 

โ˜บ๏ธ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ์ง€์‹

1.  
        for j in range(i, len(s), i):
     i๋ถ€ํ„ฐ len(s)-1๊นŒ์ง€ i ๋‹จ์œ„๋กœ ๋ฌธ์ž์—ด ํ™•์ธ

 

๐Ÿ˜‰ ๋ฆฌ๋ทฐ