python

[programmers] ๋ฌธ์ž์—ด ์—ฌ๋Ÿฌ๋ฒˆ ๋’ค์ง‘๊ธฐ (python)

Chan Lee 2023. 10. 11. 15:23

๋ฌธ์ œ

 

 

for๋ฌธ ๋‚ด์—์„œ queires ๋‚ด์˜ index๋“ค์„ ๋ฐ˜๋ณต์ ์œผ๋กœ my_string์— ์ ์šฉ์‹œํ‚ค๋ฉด์„œ,

์ ์šฉ๋œ ๋‚ด์šฉ์„ ๋‹ค์‹œ my_string์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. 


์ฝ”๋“œ ๋ฐ ์„ค๋ช…

 

def solution(my_string, queries):
    result = my_string
    for index in queries:
        front_string = result[:index[0]]
        mid_string = result[index[0]: index[1] + 1]
        back_string = result[index[1] + 1:len(result)]
        
        result = front_string + mid_string[::-1] + back_string    
    return result

 

for๋ฌธ ์†์˜ string slicing ๋‚ด์šฉ๋งŒ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

string[a:b]๋Š” (a ~ b-1) ๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ฆ‰, print("abcde"[1 : 4])

โžก๏ธ "abcde"[1] ~ "abcde"[4 - 1 = 3]์„ ์ถœ๋ ฅํ•˜๋ฏ€๋กœ, b ~ d ๊นŒ์ง€์˜ ๋ฌธ์ž์—ด, ์ฆ‰ "bcd" ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋˜ํ•œ, a == b -1 ์ด๋ผ๋ฉด string[a]์™€ ๋˜‘๊ฐ™์€ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

โžก๏ธ "abcde"[1:2] = "abcde"[1] = "b"

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ๋ฌธ์ œ์—์„œ ์ œ๊ณต๋œ ๋ฌธ์ž์—ด์„ ๋’ค์ง‘์–ด์•ผ ํ•  mid_string์„ ์ œ์™ธํ•˜๊ณ  ์•ž ๋’ค๋กœ ๋‚˜๋ˆ„๋Š”๋ฐ๋Š” ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

 

๋˜ํ•œ, ๋ฌธ์ž์—ด์„ ๋’ค์ง‘๊ธฐ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ string[::-1]์ด๋‹ค. 

์ด๋Š” range์˜ ๊ทธ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ๋ฐ, ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฌธ์ž์—ด์„ ๊ฑฐ๊พธ๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

 

์ด ๋ชจ๋“ ๊ฑธ ํ™œ์šฉํ•ด์„œ, string์„ 3๊ฐœ๋กœ ๋‚˜๋ˆˆ ๋’ค, ์ค‘๊ฐ„ ๋ถ€๋ถ„๋งŒ ๋’ค์ง‘๊ณ , ๋‹ค์‹œ ํ•ฉ์น˜๋Š” ๋ฐฉ์‹์„ ๋ฐ˜๋ณตํ•œ ์ฝ”๋“œ์ด๋‹ค.

 

 

๋” ๋‚˜์€ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฑธ ์•Œ์ง€๋งŒ, ์•„์ง ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์œผ๋‹ˆ๊นŒ ์ดํ•ดํ•ด์ฃผ์„ธ์š”~