문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/147355
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
소스 코드
def solution(t, p):
answer = 0
width = len(p) # 비교 문자열 길이
huddle = int(p) # p의 정수값
for idx in range(len(t)-len(p)+1):
if int(t[idx:idx+width]) <= huddle: answer += 1
return answer
해설
- 문자열
for문을 돌면서 p의 길이만큼 슬라이싱하고 그 값을 비교하기만 하면 되는 문제입니다.
반복적으로 사용되는 값들은 미리 저장해두고 사용하면 효율적입니다.
만약 문자열의 길이가 훨씬 길어질 수 있는 문제였다면 매번 슬라이싱하지 않고 문자열을 추가,제거 하는 방식을 이용했을 것 같습니다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 둘만의 암호 (Python) (0) | 2023.02.24 |
---|---|
[프로그래머스] 카드 뭉치 (Python) (0) | 2023.02.23 |
[프로그래머스] 가장 가까운 같은 글자 (Python) (0) | 2023.02.21 |
[프로그래머스] 문자열 나누기 (Python) (0) | 2023.02.20 |
[프로그래머스] 명예의 전당 (1) (Python) (0) | 2023.02.17 |