프로그래머스 배열 만들기 5

KIMYEONGJUN·2026년 5월 27일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

문자열 배열 intStrs와 정수 k, s, l가 주어집니다.
intStrs의 원소는 숫자로 이루어져 있습니다.
배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다.
이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.

내가 이 문제를 보고 생각해본 부분

Main33 클래스는 solution 메서드를 포함한다.
solution 메서드는 문자열 배열 intStrs와 정수 k, 인덱스 s, 길이 l을 입력으로 받는다.
각 문자열 원소에서 인덱스 s부터 길이 l만큼 부분 문자열을 잘라낸 후 정수로 변환한다.
이 정수가 k보다 클 경우 동적 배열 resultList에 저장한다.
반복이 끝나면 리스트를 정수 배열로 변환해 반환한다.
main 메서드에서는 테스트용으로 예제 값을 지정하고, solution을 호출하여 결과 배열을 Arrays.toString()으로 출력한다.
출력 결과는 배열 형태인 [56789, 99999] 같이 한 줄에 결과가 보여지도록 한다.

코드로 구현

import java.util.ArrayList;

class Solution {
    public int[] solution(String[] intStrs, int k, int s, int l) {
        ArrayList<Integer> resultList = new ArrayList<>();

        for (String str : intStrs) {
            String sub = str.substring(s, s + l);
            int num = Integer.parseInt(sub);

            if (num > k) {
                resultList.add(num);
            }
        }

        int[] answer = new int[resultList.size()];
        for (int i = 0; i < resultList.size(); i++) {
            answer[i] = resultList.get(i);
        }

        return answer;
    }
}

프로그래머스 코드

package programmers;

import java.util.ArrayList;
import java.util.Arrays;

// 프로그래머스 배열 만들기 5
public class Main33 {
    public int[] solution(String[] intStrs, int k, int s, int l) {
        ArrayList<Integer> resultList = new ArrayList<>();

        for (String str : intStrs) {
            String sub = str.substring(s, s + l);
            int num = Integer.parseInt(sub);

            if (num > k) {
                resultList.add(num);
            }
        }

        int[] answer = new int[resultList.size()];
        for (int i = 0; i < resultList.size(); i++) {
            answer[i] = resultList.get(i);
        }

        return answer;
    }

    public static void main(String[] args) {
        Main33 sol = new Main33();

        String[] intStrs = {"0123456789", "9876543210", "9999999999999"};
        int k = 50000, s = 5, l = 5;
        int[] result = sol.solution(intStrs, k, s, l);
        System.out.println(Arrays.toString(result));
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글