Programmers
Meet the best programming lessons in videos and practices. Programmers provide programing lessons, algorithm problems, programming competitions, and blockchain materials.
프로그래머스 문제풀이
문제
코딩테스트 연습 – 크기가 작은 부분 문자열
숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.
문제설명
숫자로 이루어진 문자열 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,000t
와p
는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.
입출력 예
t | p | result |
---|---|---|
“3141592” | “271” | 2 |
“500220839878” | “7” | 8 |
“10203” | “15” | 3 |
입출력 예 설명
입출력 예 #1
본문과 같습니다.
입출력 예 #2p
의 길이가 1이므로 t
의 부분문자열은 “5”, “0”, 0″, “2”, “2”, “0”, “8”, “3”, “9”, “8”, “7”, “8”이며 이중 7보다 작거나 같은 숫자는 “5”, “0”, “0”, “2”, “2”, “0”, “3”, “7” 이렇게 8개가 있습니다.
입출력 예 #3p
의 길이가 2이므로 t
의 부분문자열은 “10”, “02”, “20”, “03”이며, 이중 15보다 작거나 같은 숫자는 “10”, “02”, “03” 이렇게 3개입니다. “02”와 “03”은 각각 2, 3에 해당한다는 점에 주의하세요
문제해석과정
- t문자열을 각 문자자리에서 p의 길이만큼씩 부분문자열을 만든다.
- t의 부분문자열을 p와 비교하여 작거나 같은 갯수를 출력한다.
위 같은 문제 및 제한사항을 해석하고 문제풀이를 시작하면 됩니다.
나의 풀이
이번 문제는 억지로 한 줄로 만들어봤습니다.
def solution(t, p): return len([t[i:i+len(p)] for i in range(len(t)-len(p)+1) if int(t[i:i+len(p)])<=int(p)]) #위 코드를 풀어쓰자면, #def solution(t, p): # answer = 0 # L = [] # for i in range(len(t)-len(p)+1): #p길이만큼의 부분문자열을 만들수있는 시작점으로 반복 # if int(t[i:i+len(p))<=int(p): #부분문자열이 p보다 작다면 # L.append(t[i:i+len(p)]) #리스트에 추가 # answer = len(L) #리스트의 요소갯수 출력 # return answer
다른 사람의 풀이
아래 풀이는 제 풀이와 개념적으로 같은 로직입니다.
def solution(t, p): answer = 0 for i in range(len(t) - len(p) + 1): if int(p) >= int(t[i:i+len(p)]): answer += 1 return answer
관련 링크
문제해결과정에서 기초가 부족하다고 느껴지시면 아래 정리 글을 참고해주세요.
추가적으로 궁금한 사항이나 글에 대한 개선점 알려주시면 피드백 적극 반영하도록 하겠습니다.
Python 문법 총 정리1 – Zzrany Blog
여기는 Python을 공부하며 학습한 내용을 정리하는 블로그입니다. 해당 포스팅에서는 개발시 참고하실 수 있도록 Python 문법들을 한눈에 보이도록 필요한 내용만 간략하게 정리해보았습니다.
Python 문법 총 정리2 – Zzrany Blog
여기는 Python을 공부하며 학습한 내용을 정리하는 블로그입니다. 해당 포스팅에서는 개발시 참고하실 수 있도록 Python 문법들을 한눈에 보이도록 필요한 내용만 간략하게 정리해보았습니다.