프로그래머스_크기가 작은 부분문자열

임정민·2023년 9월 23일
1

알고리즘 문제풀이

목록 보기
108/173
post-thumbnail

프로그래머스 Lv1 문제입니다. 실전에 대비하기 위해 30분 시간제한을 두고 풀었습니다.

문제

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

[나의 풀이]

⌛ 6분 소요


def solution(t, p):
    answer = 0 
    len_t = len(t)
    len_p = len(p)

    for i in range(len_t-len_p+1):
        if t[i:i+len_p] <= p:
            answer += 1 

    return answer

입력된 문자열(t)의 부분문자열(연속된 부분 문자열) 중 문자열(p)보다 작거나 같은 문자열의 갯수를 출력하는 문제입니다. 어렵지 않게 구현할 수 있었습니다.🐰🐰🐰

[다른 사람의 풀이1]


def solution(t, p):
    return sum([int(t[i:i+len(p)]) <= int(p) for i in range(len(t)-len(p)+1)])

같은 원리의 풀이입니다. list comprehension을 활용하여 한줄로 간결히 구현한 방식입니다.
🐬🐬🐬

[다른 사람의 풀이2]


def solution(t, p):
    idx=len(p)
    arr=[]
    cnt=0
    for i in range(len(t)-idx+1):
        arr.append(t[i:i+idx])
        
    for i in range(len(arr)):
        if int(arr[i])<=int(p):
            cnt+=1

    answer = cnt
    return answer

또 다른 방식으로는 부분문자열의 모든 케이스를 먼저 저장하고 p와 대소관계를 비교하는 방식이 있었습니다.🐱🐱🐱

감사합니다/

profile
https://github.com/min731

0개의 댓글