๐Ÿคฃ ๋ฌธ์ž์—ด ์••์ถ•

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

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

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

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


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

def solution(s):
# ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋กœ ์ •๋‹ต ํ›„๋ณด๋ฅผ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค
    answer = len(s)
# 1๊ฐœ ๋ฐ˜๋ณต ๋ถ€ํ„ฐ ์ „์ฒด ์ ˆ๋ฐ˜ ๊ธธ์ด์˜ ๋ฐ˜๋ณต๊นŒ์ง€ ์‚ดํŽด๋ณธ๋‹ค
    for length in range(1, len(s) // 2 + 1):
# ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋Š” ๋ฏธ๋ฆฌ ๋„ฃ์–ด๋‘”๋‹ค
        temp = [s[:length]]
# ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณต๋˜๋Š” ์ง€ count ๋ณ€์ˆ˜๋กœ ์„ผ๋‹ค
        count = 1
# ๋‘๋ฒˆ์งธ ์š”์†Œ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๊นŒ์ง€ length๋งŒํผ ๊ฑด๋„ˆ๋›ฐ๋ฉฐ ์„ผ๋‹ค
        for index in range(length, len(s), length):
# ๋งŒ์•ฝ ๊ทธ ์š”์†Œ๊ฐ€ ๊ทธ ์•ž์˜ ์š”์†Œ์™€ ๊ฐ™๋‹ค๋ฉด
            if s[index: index + length] == temp[-1]:
# count๋ฅผ 1 ํ‚ค์šด๋‹ค
                count += 1
# ์ƒˆ๋กœ์šด ์š”์†Œ๊ฐ€ ๋‚˜์™”๋‹ค๋ฉด
            else:
# ๊ทธ ์ด์ „ ์š”์†Œ๊ฐ€ ํ•œ๋ฒˆ ๋‚˜์˜จ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด
                if count != 1:
# ๊ทธ ์ด์ „ ์š”์†Œ๊ฐ€ ๋ฐ˜๋ณต๋œ ํšŸ์ˆ˜๋ฅผ ๊ทธ ์•ž์— ์ ์–ด์ค€๋‹ค
                    temp.insert(-1, str(count))
# ์ด๋ฒˆ ์š”์†Œ์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ค€๋‹ค
                count = 1
# ์ƒˆ๋กœ ๋‚˜์˜จ ์š”์†Œ๋ฅผ temp์˜ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•œ๋‹ค
                temp.append(s[index: index + length])
        else:
# ๋ฐ˜๋ณต์ด ๋ชจ๋‘ ๋๋‚œ ํ›„ ์ˆซ์ž์—๋„ ์นด์šดํŠธ๋ฅผ ๋นผ๋จน์ง€ ์•Š๋Š”๋‹ค
            if count != 1:
                temp.insert(-1, str(count))
# ๊ธธ์ด๋ฅผ ์„ธ๊ณ  ์ง€๊ธˆ๊นŒ์ง€์˜ ๋‹ต๋ณด๋‹ค ๋” ์ตœ์ ์˜ ๋‹ต์ด ๋‚˜์™”๋‹ค๋ฉด ์น˜ํ™˜ํ•œ๋‹ค
        temp_answer = len("".join(temp))
        if temp_answer < answer:
            answer = temp_answer
    return answer
profile
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํŒŒ์ด์ฌ ๊ทธ๋ฆฌ๊ณ  ์ปดํ“จํ„ฐ์™€ ๋„คํŠธ์›Œํฌ

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