[programmers] 잘라서 배열로 저장하기 - Java

문자열 'my_str'을 길이 'n'씩 잘라 배열에 저장하는 함수를 작성하는 문제입니다. 이를 해결하기 위해 substring(int i, int j) 메소드를 사용하여 i부터 j인덱스까지의 문자열을 잘라내며, Math.min() 메소드를 통해 문자열의 나머지 길이가 'n'보다 작은 경우를 처리합니다.
Jan 30, 2024
[programmers] 잘라서 배열로 저장하기 - Java

문제 설명

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

제한사항

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

입출력 예

my_str
n
result
"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"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.

solution.java

import java.util.*; class Solution { public String[] solution(String my_str, int n) { List<String> list = new ArrayList<>(); for (int i = 0; i < my_str.length(); i += n) { list.add(my_str.substring(i, Math.min(i + n, my_str.length()))); } return list.toArray(new String[list.size()]); } }
 

핵심 키워드

  • substring(int i, int j) 메소드를 통해 i부터 j인덱스까지의 문자열을 잘라낼 수 있다.
  • Math.min() 메소드를 통해 문자열의 나머지 길이가 n보다 작은 경우를 처리할 수 있다.
 

결론!

해당 문제를 풀면서 코드를 작성하다가 반복문의 조건을 구성하는데 어려움을 겪었고, 이를 Math.min() 메소드를 통해 해결할 수 있었다.
 
Share article

More articles

See more posts

👨🏻‍💻DriedPollack's Blog