Algorithm๐Ÿค/Python

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด - ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ์˜ ์ฐจ์ด์ 

ํŒŒ์นดํŒŒ์˜ค 2024. 4. 10. 19:10

# ๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/147355

 

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

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

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๊ฐœ ์ž…๋‹ˆ๋‹ค.

 

# ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ์˜ ์ฐจ์ด์ 

 

๋‘˜์€ ์—„๋ฐ€ํžˆ ๋‹ค๋ฅด๋‹ค!

arr = "12341332" # ๋ฌธ์ž์—ด
print(arr) # 12341332

arr2 = list(arr) # ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ
print(arr2) # ['1', '2', '3', '4', '1', '3', '3', '2']

 

โ€ป arr์ธ ๋ฌธ์ž์—ด๋„, arr2์ธ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ๋„ len() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค!

 

12341332 -> ๋ฌธ์ž์—ด

['1','2','3','4','1','3','3','2'] -> ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ

 

๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€?

 

์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด์ž

pop()ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

์ฆ‰, ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

๋ฌธ์ž์—ด์—์„œ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค

 

arr = str(12345)
arr.pop(0)
print(arr)

 

 

๋‹น์—ฐํžˆ str์—์„œ๋Š” ์‚ฌ์šฉํ• ์ˆ˜ ์—†๊ฒ ์ง€ !

 

arr = str(12345)
arr2 = list(arr)
arr2.pop(0)
print(arr2)
# ๊ฒฐ๊ณผ
['2', '3', '4', '5']

 

 

 

# ์ •๋‹ต

 

def solution(arr, num):
    arr = list(arr)
    cnt = 0
    for i in range(len(arr) - len(num)+1):
        result = arr[i:i+len(num)]
        if result[0:1] == '0':
            result.pop(0)
        total = int(''.join(result))
        if total <= int(num):
            cnt += 1
    return cnt

 

 

 

 

 

 

# ๋‚ด๊ฐ€ ์ •๋ฆฌํ•œ ์ •์ˆ˜์™€ ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ์˜ ๊ด€๊ณ„

 

 

๋ฌธ์ž์—ด 12341332์™€ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ ['1','2','3','4','1','3','3','2']๊ฐ€ ๋‹ค๋ฆ„์„ ํ™•์‹คํ•˜๊ฒŒ ์•Œ์ž!