본문 바로가기

Algorithm/Brute Force

(Java, Python3) - 프로그래머스(연습문제): 크기가 작은 부분문자열

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/147355?language=python3

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문자열을 다뤄보는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. 정답 변수 answer 선언 후 0으로 초기화합니다.

 

2. p의 길이를 선언 후 해당 값을 저장합니다.

📔 풀이과정

p길이만큼 자르기 위해 0부터 t의 길이 - p의 길이까지 for loop를 수행하며 다음을 진행합니다.1. 자른 부분 문자열을 저장해주고 p보다 작다면 answer를 1증가시켜줍니다. 파이썬의 경우 문자열,정수 비교를 모두 <= 연산자로 가능하지만 java는 toCompare함수를 사용해 0 또는 -1이라면 해당 조건을 만족하게 됩니다.

📔 정답 출력 | 반환

answer를 반환합니다.


📕 Code

📔 Java

import java.math.BigDecimal;

class Solution {
    public int solution(String t, String p) {
        int answer = 0;
        int plen = p.length();
        for(int i = 0; i <= t.length() - plen; i++) {
            String subString = t.substring(i, i+plen);
            if (new BigDecimal(subString).compareTo(new BigDecimal(p)) <= 0) {
                answer += 1;
            }
        }
        return answer;
    }
}

 

📔 Python3

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

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.