๐Ÿ“Œ ํŒŒ์ด์ฌ ์œผ๋กœ ํ’€์ด

 

๐Ÿ“Œ ๋ฌธ์ œ ๋งํฌ :

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช… :

๋จธ์“ฑ์ด๋Š” ํƒœ์–ด๋‚œ ์ง€ 11๊ฐœ์›” ๋œ ์กฐ์นด๋ฅผ ๋Œ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์นด๋Š” ์•„์ง "aya", "ye", "woo", "ma" ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ๊ณผ ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ์„ ์กฐํ•ฉํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐœ์Œ๋ฐ–์— ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์—ฐ์†ํ•ด์„œ ๊ฐ™์€ ๋ฐœ์Œ์„ ํ•˜๋Š” ๊ฒƒ์„ ์–ด๋ ค์›Œํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฐฐ์—ด babbling์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋จธ์“ฑ์ด์˜ ์กฐ์นด๊ฐ€ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

๐Ÿ“Œ ์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ babbling์˜ ๊ธธ์ด ≤ 100
  • 1 ≤ babbling[i]์˜ ๊ธธ์ด ≤ 30
  • ๋ฌธ์ž์—ด์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ“Œ ์ž…์ถœ๋ ฅ ์˜ˆ

 


์ถ”์ธก) 

* ๊ฐ™์€ ๋ฐœ์Œ ์—ฐ๋‹ฌ์•„ ๋ชปํ•จ ****

* babbling ๋ฐฐ์—ด์„ for๋ฌธ์œผ๋กœ ๋Œ๋ฆฌ๊ณ  ๊ฐ ์ธ๋ฑ์Šค๋งˆ๋‹ค ๊ธฐ๋ณธ ๋ฐœ์Œ๋“ค์„ ๋˜ for๋ฌธ while๋ฌธ์œผ๋กœ ๋Œ๋ฆฌ๋ฉด์„œ ๋ฌธ์ž์—ด์„ ์ž˜๋ผ๋‚˜๊ฐ€์•ผ ํ• ๊นŒ?

- ๋ฌธ์ž์—ด์—์„œ ๊ธฐ๋ณธ ๋ฐœ์Œ์ด ์žˆ๋Š”์ง€ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ์ฐพ๊ณ  ์ธ๋ฑ์Šค ๊ฐ’์ด ๋‚˜์˜ค๋ฉด ๊ทธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๊ธฐ๋ณธ ๋ฐœ์Œ ๊ฐœ์ˆ˜ ๋งŒํผ ๊นŒ์ง€๋ฅผ ์ž˜๋ผ๋‚ด๊ณ , -1์ด ๋ ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณต. > ๋ฐœ์Œ์ด ํ•˜๋‚˜๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— flag๋ฅผ ์‚ฌ์šฉํ•ด while๋ฌธ์œผ๋กœ ๋Œ๋ ค์•ผํ•จ

 

* ๊ฐ™์€ ๋ฐœ์Œ ์—ฐ๋‹ฌ์•„ ๋‚˜์˜ค๋Š”๊ฑด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋‚˜..? ์ผ์น˜ํ•˜๋Š” ๊ฒŒ ๋‚˜ํƒ€๋‚˜๋ฉด ์ด์ „ start_idx ๊ฐ’์„ ํ™•์ธํ•˜๊ณ  ๊ทธ ๋•Œ์˜ ์ธ๋ฑ์Šค์—์„œ ์ง€๊ธˆ ๋ฐœ์Œ์— ๋Œ€ํ•œ ๊ธธ์ด๋งŒํผ์„ ๋บ€ ๊ฐ’์„ ๋น„๊ตํ•ด ์ผ์น˜ํ•˜๋ฉด ์นด์šดํŒ… ์•ˆํ•˜๊ณ  break

 

- -1์ธ๋ฐ ๋ฌธ์ž์—ด์ด ๋‚จ์•„ ์žˆ์œผ๋ฉด ๋ฐœ์Œ ๋ถˆ๊ฐ€ํ•œ ๋ฌธ์ž์ด๋ฏ€๋กœ ์นด์šดํŒ…์—์„œ ์ œ์™ธ

- -1์ธ๋ฐ ๋ฌธ์ž์—ด์ด ๋น„์–ด์žˆ๋‹ค๋ฉด ์นด์šดํŒ… +1

- for๋ฌธ ์ข…๋ฃŒ ํ›„ ์นด์šดํŠธ ๊ฐ’ ๋ฐ˜ํ™˜ 

 

 

์†Œ์Šค์ฝ”๋“œ) 

* 1์ฐจ) ์‹คํŒจ : 50์ 

def solution(babbling):
    basic = ["aya", "ye", "woo", "ma"]
    cnt = 0

    for one in babbling:
        i = 0
        before_idx = -2

        while i < len(basic) :
            if len(one) == 0 :
                cnt += 1
                break

            start_idx = one.find(basic[i])

            if start_idx != -1 :
                before_len = len(one)
                one = one.replace(basic[i], "", 1)
                if before_len - len(basic[i]) == len(one) and before_idx == start_idx :
                    break
                before_idx = start_idx

            else:
                i += 1
                before_idx = -2

    return cnt

* 2์ฐจ) ์„ฑ๊ณต : ๋ฌธ์ž๋ฅผ ์ง€์šฐ๋ฉด ๋ถ™์–ด์„œ ์ƒˆ๋กœ ๊ธฐ๋ณธ ์˜น์•Œ์ด ๋ฐœ์Œ์ฒ˜๋Ÿผ ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ ์ฒ˜๋ฆฌ 

def solution(babbling):
    basic = ["aya", "ye", "woo", "ma"]
    cnt = 0

    for one in babbling:
        i = 0
        if one.isspace() :
            continue

        while i < len(basic) :
            if basic[i] * 2 in one:
                break

            if one.isspace() :
                cnt += 1
                break

            start_idx = one.find(basic[i])

            if start_idx != -1 :
                one = one.replace(basic[i], " ", 1)
            else:
                i += 1

    return cnt

 

๋ฆฌ๋ทฐ) 

์ƒ๊ฐ์ง€ ๋ชปํ•œ ์˜ˆ์‹œ๋ฅผ ๋“ค์ž๋ฉด "ayaywooe" ์—์„œ aya ๋‚˜ woo๊ฐ€ ์ง€์›Œ์ง€๊ณ  ๋‚˜๋ฉด y, e๊ฐ€ ๋‘˜๋‹ค ๋ฐœ์Œ ๋ชปํ•˜๋Š” ๊ฑด๋ฐ ye๊ฐ€ ๋ถ™์–ด๋ฒ„๋ ค ๋ฐœ์Œ์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐ์ง€ ๋ชปํ–ˆ๋‹ค. ์ด ๋ถ€๋ถ„์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ญ์ œํ•˜๊ณ ๋‚˜์„œ ๊ณต๋ฐฑ์ฒ˜๋ฆฌํ•˜๊ณ  ์ „๋ถ€ ๊ณต๋ฐฑ์ผ๋•Œ ์นด์šดํŠธ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋”๋‹ˆ ํ†ต๊ณผํ–ˆ๋‹ค!!!

+ Recent posts