Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 배열만들기 5 (Java/자바) 본문

알고리즘문제/프로그래머스(Java)

[프로그래머스] - 배열만들기 5 (Java/자바)

luke-king 2026. 1. 19. 23:07

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181912

 

프로그래머스

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

programmers.co.kr

 

 

 

 

 

문제.


 

 

 

 

 

 

풀이.


class Solution {
    public int[] solution(String[] intStrs, int k, int s, int l) {
        List<Integer> ls = new ArrayList<>();
        
        for(int i = 0; i < intStrs.length; i++){
            String sub = intStrs[i].substring(s, s+l);
            int num = Integer.parseInt(sub);

            if(num > k){
                ls.add(num);
            }
        }
        
        int[] answer = new int[ls.size()];
        for(int i = 0; i < answer.length; i++){
            answer[i] = ls.get(i);
        }
        
        return answer;
    }
}

이번 문제는 프로그래머스 "배열 만들기 5" 문제다.

문제 접근은 intStrs[] 의 각 인덱스 값에 있는 문자열을 s ~ l 까지 만 나타내고 그 수가 k보다 크면 배열에 담아 주는 문제다.

그럼 바로 풀이 해보겠다.

 

1. List<Integer>를 생성해준다. 이유는 리스트에 k보다 큰 값들을 담아 주기 위해서다.

 

2. for 문을 사용해 intStrs 길이만큼 반복해주고 substring()을 사용해서 s부터 s+l 까지 자른다.

예를 들자면 5부터 10까지의 문자열을 추출하겠다는 뜻이다.

 

3. 자른 문자열은 형변환을 통해 정수 형으로 바꿔준다.

 

4. 바꿔준 정수가 k보다 크다면 그 값은 만들어 둔 List<> 값에 넣어준다.

 

5. 이제 answer[] 길이는 List<>의 사이즈만큼 생성해준다.

 

6. 마지막으로 for문을 사용해 List<> 에 있는 값을 answer[]에 넣어주면 끝이다.