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

 

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

 

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

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

programmers.co.kr

 

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

์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด t์™€ p๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, t์—์„œ p์™€ ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋ถ€๋ถ„๋ฌธ์ž์—ด ์ค‘์—์„œ, ์ด ๋ถ€๋ถ„๋ฌธ์ž์—ด์ด ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๊ฐ€ p๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒƒ์ด ๋‚˜์˜ค๋Š” ํšŸ์ˆ˜๋ฅผ returnํ•˜๋Š” ํ•จ์ˆ˜ solution์„ ์™„์„ฑํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด, t="3141592"์ด๊ณ  p="271" ์ธ ๊ฒฝ์šฐ, t์˜ ๊ธธ์ด๊ฐ€ 3์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ 314, 141, 415, 159, 592์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ž์—ด์ด ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜ ์ค‘ 271๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ˆ˜๋Š” 141, 159 2๊ฐœ ์ž…๋‹ˆ๋‹ค.

 

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

  • 1 ≤ p์˜ ๊ธธ์ด ≤ 18
  • p์˜ ๊ธธ์ด ≤ t์˜ ๊ธธ์ด ≤ 10,000
  • t์™€ p๋Š” ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด๋ฉฐ, 0์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

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


์ถ”์ธก ์˜์‚ฌ์ฝ”๋“œ) 

1. ๋ฐ›์€ ๋ฌธ์ž์—ด t๋ฅผ ๋จผ์ € p์˜ ๊ธธ์ด๋”ฐ๋ผ ๋จผ์ € ์ž˜๋ผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ ๋‹ค

2. ๊ฒฐ๊ณผ๊ฐ’ ์นด์šดํŠธ๋ฅผ ๋ฐ›์„ ๋ณ€์ˆ˜ cnt๋ฅผ ํ•˜๋‚˜ ์„ ์–ธํ•œ๋‹ค.

3. ๊ทธ ๋ฐฐ์—ด์„ for๋ฌธ์œผ๋กœ ๋Œ๋ฆฐ๋‹ค.

4. t ์ธ๋ฑ์Šค๋งˆ๋‹ค์˜ ๊ฐ’๊ณผ p๋ฅผ ๋น„๊ตํ•ด์•ผํ•˜๋Š” ๋ฐ ๋‘˜๋‹ค ์ˆซ์žํ˜•ํƒœ์˜ "๋ฌธ์ž์—ด"์ด๋ฏ€๋กœ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

5. ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ํ•˜๋‚˜ ๊ฐ’์ด p ๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด

    - cnt๊ฐ’์„ ์˜ฌ๋ฆฐ๋‹ค

6. cnt๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

+ ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด๋ผ๋Š” ๊ฒƒ์„ ์ฃผ์˜

 

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

* 1์ฐจ) ์„ฑ๊ณต : ๋ฉ”๋ชจ๋ฆฌ: 10.3 MB, ์‹œ๊ฐ„: 0.05 ms

def SmallSubstring(t, p):

    cnt = 0
    # len ๊ธธ์ด ๊ตฌํ•˜๋Š” ์‹
    unit = len(p)
    # range(min, max, gap) gap์€ ์ˆซ์ž๋“ค ์‚ฌ์ด์— ์ฐจ์ด๋ฅผ ๋‘๊ณ  ๋งŒ๋“ ๋‹ค.
    # ํ•œ์ค„ ํฌ๋ฌธ ์•ž์— ์‹คํ–‰๋ฌธ ๋‘๊ณ  ๋’ค์— for๋ฌธ์„ ๋‘”๋‹ค.
    # ๋ฆฌ์ŠคํŠธ ํ‘œํ˜„์‹์—๋Š” ๋ฆฌ์ŠคํŠธ ์•ˆ์— if๋ฌธ๊ณผ for์„ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ
    b = [t[i:i+unit] for i in range(0,len(t))]
    print(b)

    for one in b:
        if int(one) <= int(p) and len(one) == len(p):
            cnt += 1

    return cnt

 

๋ฆฌ๋ทฐ) 

ํ•œ์ค„ for๋ฌธ๊ณผ ๋ฆฌ์ŠคํŠธ ํ‘œํ˜„์‹์„ ๋ฐฐ์šด ๋ฌธ์ œ. ํŒŒ์ด์ฌ์—์„œ ๋ณ„๋„๋กœ ๋ฌธ์ž์—ด์„ ์ž๋ฅด๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ์•Œ๊ฒŒ๋ฌ๋‹ค.

๋ฆฌ์ŠคํŠธ ํ‘œํ˜„์‹์ด ํŠนํžˆ ์‹ ๊ธฐํ–ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ ์•ˆ์— ๋ฐ”๋กœ for๋ฌธ์ด๋‚˜ if๋ฌธ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋‹ˆ!!!

ํ™•์‹คํžˆ ๊ฐ„๊ฒฐํ•˜๊ธด ํ•œ๋ฐ ๊ฐ€๋…์„ฑ ์ ์œผ๋กœ๋Š” ์•„์ง ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ๊ฐ€ ์ž˜ ๋ˆˆ์— ์•ˆ๋“ค์–ด์˜จ๋‹ค ใ…Žใ…Ž 

 

ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•˜์ž๋ฉด b์— ๋„ฃ์–ด์ค€ for๋ฌธ ๋ฐฉ์‹์œผ๋กœ ํ•˜๋ฉด ๋งˆ์ง€๋ง‰์€ ๊ธธ์ด๊ฐ€ ๋ชจ์ž๋ž€ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ณ  ๊ทธ ๊ฐ’์€ ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ฏ€๋กœ ์นด์šดํŠธ ๋Œ€์ƒ์—์„œ ์ œ์™ธํ•œ๋‹ค. 

 

 

+ Recent posts