๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] ๊ฐ€์žฅ ๊ธด ํŒฐ๋ฆฐ๋“œ๋กฌ - ์—ฐ์Šต๋ฌธ์ œ

๋ฟŒ์•ผ._. 2021. 12. 3. 12:22

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต 

 


<๊ฐ€์žฅ ๊ธด ํŒฐ๋ฆฐ๋“œ๋กฌ>

๋ฌธ์ œ ์„ค๋ช…

 

์•ž๋’ค๋ฅผ ๋’ค์ง‘์–ด๋„ ๋˜‘๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํŒฐ๋ฆฐ๋“œ๋กฌ(palindrome)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, s์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด(Substring)์ค‘ ๊ฐ€์žฅ ๊ธด ํŒฐ๋ฆฐ๋“œ๋กฌ์˜ ๊ธธ์ด๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.
์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋ฌธ์ž์—ด s๊ฐ€ "abcdcba"์ด๋ฉด 7์„ return ํ•˜๊ณ  "abacde"์ด๋ฉด 3์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ
-๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 2,500 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
-๋ฌธ์ž์—ด s๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ๊ตฌ์„ฑ

 

 

๋ฌธ์ œ ํ’€์ด

   - my solution

def solution(s):
    answer = 1 # ๋ฌธ์ž์—ด ๊ธธ์ด 1
    
    for i in range(len(s)-1): # ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ - ๋ฌธ์ž์—ด  
        for j in range(i,len(s)):
            temp=s[i:j+1] 
            if temp==temp[::-1]: # ํŒฐ๋ฆฐ๋“œ๋กฌ ํ™•์ธ
                if answer<len(temp): # ๊ฐ€์žฅ ๊ธด ๊ธธ์ด 
                    answer=len(temp)
            
    return answer

 

 

1) ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 1์ผ ๋•Œ answer=1

2) 2์ค‘ for๋ฌธ ํ†ตํ•ด ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ฐพ๊ธฐ

   - ํŒฐ๋ฆฐ๋“œ๋กฌ(์•ž๋’ค๋ฅผ ๋’ค์ง‘์–ด๋„ ๋˜‘๊ฐ™์€ ๋ฌธ์ž์—ด) ํ™•์ธ

   - ๊ฐ€์žฅ ๊ธด ๊ธธ์ด ์ฐพ๊ธฐ


์ƒ๊ฐ๐Ÿค”

 

์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์„ ๋•Œ ์ •ํ™•์„ฑ์—์„œ 1๋ฌธ์ œ ์‹คํŒจ์™€ ํšจ์œจ์„ฑ์—์„œ ์‹คํŒจ๊ฐ€ ๋–ด์—ˆ๋‹ค.

์ •ํ™•์„ฑ์—์„œ์˜ ์‹คํŒจ์˜ ์ด์œ ๋กœ๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 1์ผ ๋•Œ answer์„ 1๋กœ ๋ฐ”๊พธ์ง€ ์•Š์•„์„œ์˜€๋‹ค. 

์ฒ˜์Œ์— ์กฐ๊ฑด์„ ์ƒ๊ฐํ–ˆ๊ธด ํ–ˆ์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ๊ณ ์น˜๋Š” ๊ณผ์ •์—์„œ ๋นผ๋จน์€ ๊ฒƒ์ด์—ˆ๋‹ค..!

 

ํšจ์œจ์„ฑ์˜ ์‹คํŒจ์˜ ์ด์œ ๋กœ๋Š” ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์—์„œ์˜ for๋ฌธ ์‚ฌ์šฉ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.

for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ž ๋’ค๋กœ ๊ฐ™์€์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๋‹ˆ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค.

๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ํŒฐ๋ฆฐ๋“œ๋กฌ์€ ์•ž๋’ค๋ฅผ ๋’ค์ง‘์–ด๋„ ๋˜‘๊ฐ™์€ ๋ฌธ์ž์—ด๋กœ ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘์–ด ๊ฐ™์€์ง€ ํ™•์ธํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

(์†Œ๋ฆ„)

 

Level 3์ธ ๋ฌธ์ œ์˜€์ง€๋งŒ ์—ฐ์Šต๋ฌธ์ œ๋ผ ๊ทธ๋Ÿฐ์ง€ ์ƒ๊ฐ๋ณด๋‹ค ๋นจ๋ฆฌ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges