Algorithm
크기가 작은 부분 문자열 / 프로그래머스
김예나
2025. 1. 21. 13:23
삼총사
def solution(number):
answer = 0
for i in range(0, len(number)):
for j in range(i+1, len(number)):
for k in range(j+1, len(number)):
if number[i] + number[j] + number[k] == 0:
answer += 1
return answer
크기가 작은 부분 문자열
- 첫 번째 시도 -> 하지만 테스트 케이스에서 시간 초과 및 빈 객체에 pop했다는 에러 뜸
- len(deq) >= len(p) 이 조건 또한 빼먹음
import collections
def solution(t, p):
answer = 0
deq = collections.deque(t)
while len(deq) >= len(p):
d = ""
copy = ""
recover = []
for _ in range(len(p)):
d += deq.popleft()
copy = d[:]
if int(p) >= int(copy):
answer += 1
recover = list(d)
for _ in range(2):
deq.appendleft(recover.pop())
return answer
- 크기가 작은 부크기가 작은 부분 문자
- 두 번째 시도
- 그냥 덱이고 뭐고 슬라이싱을 하면 되는 거였다..
- 뭔가 괜히 어렵게 생각하는 습관이 있는 것 같다;; (아직 개념적인 걸? 잘 몰라서 그런 것 같음)
import collections
def solution(t, p):
answer = 0
t_len = len(t)
p_len = len(p)
start = 0
end = p_len
while t_len - p_len >= 0:
n = int(t[start:end])
if n <= int(p):
answer += 1
start += 1
end += 1
t_len -= 1
return answer