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

권권·2023년 3월 20일
post-thumbnail

프로그래머스_크기가 다른 부분 문자열 문제

String 형식으로 된 숫자의 나열이 주어졌을 때, 주어진 p 문자열의 길이만큼 부분 문자열을 찾고 그 문자열 중, p 보다 작거나 같은 수를 찾아낸다.

해결방법

  1. 전체 리스트에서 슬라이싱한 만큼 빼주었을 때, 부분 문자열이몇개가 나오는지 규칙을 파악하였다.
    찾은 규칙 : p의 길이에서 t의 길이를 뺀 것에 + 1 을 해주면 부분 문자열의 갯수가 나온다.

  2. 잘려서 나온 값들을 저장할 수 있는 공간을 만들고 그 공간에 하나씩 저장

  3. 공간의 크기를 리턴해준다.

** 주의할 것, 반환되는 타입 !
문자열의 크기가 클 수 있기 때문에 long으로 반환해줘야한다.

코드

import java.util.*;
class Solution {
    public int solution(String t, String p) {
        
        List<Long> list = new ArrayList<>();
        // 부분문자열의 갯수 (t.length() - p.length() + 1)
        for(int i = 0 ; i < (t.length() - p.length() + 1) ; i++){
            Long num1 = Long.parseLong(t.substring(i, i+p.length()));
            if(num1 <= Long.parseLong(p)){
                list.add(num1);
            }
        }
        return list.size();
        }
    
    }

ArrayList 를 우선 만들어서 정답이 들어갈 수 있는 공간을 만들어 주었다.
그리고 찾은 규칙을 적용한 for 문을 돌렸고 안에 if 문을 통해서 ArrayList 에 들어갈 수 있는 규칙을 한번 더 걸어주었다.

profile
안녕하세요

0개의 댓글