반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [프로그래머스] 잘라서 배열로 저장하기 자바(JAVA)

1) 문제 제목 : 잘라서 배열로 저장하기

 

2) 문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120913

 

프로그래머스

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

programmers.co.kr

 

2. 문제

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

 

3. 제약사항

  • 1 ≤ my_str의 길이 ≤ 100
  • 1 ≤ n  my_str의 길이
  • my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.

 

4. 입출력

my_strnresult

"abc1Addfggg4556b" 6 ["abc1Ad", "dfggg4", "556b"]
"abcdef123" 3 ["abc", "def", "123"]

입출력 예 설명

입출력 예 #1

  • "abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.

입출력 예 #2

  • "abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.

유의사항

  • 입출력 예 #1의 경우 "abc1Addfggg4556b"를 길이 6씩 자르면 "abc1Ad", "dfggg4" 두개와 마지막 "556b"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.

 

5. 풀이

- while문을 돌리면서 문자열의 길이가 n 미만인 경우까지 돌리면서 substring을 사용하여 잘라서 배열에 저장하면 된다.

- n 미만인 경우에는 길이가 0이면 멈추고 0이 아니라면 리스트에 넣으면 된다.

 

6. 소스 코드

import java.util.ArrayList;

class Solution {
    public String[] solution(String my_str, int n) {
        
        ArrayList<String> strList = new ArrayList<>();
        
        int i = 0;
        
        while(true) {
            if(my_str.length() < n) {
                if(my_str.length() == 0) {
                    break;
                } else {
                    strList.add(my_str);
                    break;
                }
            }
            
            String subStr = my_str.substring(0, n);
            strList.add(subStr);
            i++;
            my_str = my_str.replace(subStr, "");
        }
        
        String[] answer = new String[strList.size()];
        
        for(int a = 0; a < strList.size(); a++) {
            answer[a] = strList.get(a);
        }
        return answer;
    }
}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기