Algorithm/PS

[C++, python] 프로그래머스 - 크기가 작은 부분 문자열

chanwoong1 2023. 2. 25. 18:52
728x90

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 풀이

이 문제는 문자열 t에서 p와 길이가 같은 부분 문자열을 추출한 뒤, 값을 비교해서 부분 문자열의 크기가 더 작은 경우를 뽑는 문제이다.

C++의 경우, p의 길이에 따라 int형의 범위를 넘어가는 부분 문자열이 추출될 수 있으므로, stoll을 사용해 long long형으로 받아와야한다.

python의 경우, 문자열 슬라이싱을 통해 부분 문자열을 추출할 수 있다.

정답 코드

C++

#include <string>
#include <vector>

using namespace std;

int solution(string t, string p) {
    int answer = 0;
    for (int i = 0; i < t.length() - p.length() + 1; i++) {
        long long a = stoll(t.substr(i, p.length())), b = stoll(p);
        if (a <= b) answer++;
    }
    return answer;
}

python

def solution(t, p):
    answer = 0
    for i in range(0, len(t) - len(p) + 1) :
        if int(t[i : i + len(p)]) <= int(p) :
            answer += 1
    return answer
728x90