잘라서 배열로 저장하기
Algorithm 관련 포스팅
- 최빈값 구하기
- k의 개수 구하기
- String
- 문자열 정렬하기
- 인덱스 바꾸기
- 제곱수 판별하기
- Math
- 배열 회전시키기
- A로 B 만들기
- 잘라서 배열로 저장하기
- Array와 ArrayList
- 저주의 숫자 3
이 글은 프로그래머스의 잘라서 배열로 저장하기의 풀이를 정리한 것입니다.
문제 설명
문자열 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”가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.
나의 풀이
substring(int beginIndex, int endIndex)
의beginIndex
를i
로 설정하기 위해for
문의i
를 자르고자 하는 길이만큼 증가하도록 설정substring(int beginIndex, int endIndex)
의endIndex
를 변수end
로 설정end
가 문자열의 길이보다 작으면i ≤ x < end
범위를,end
가 문자열의 길이보다 크거나 같으면i ≤ x < str.length()
범위를 잘라ArrayList
에 추가ArrayList
를String[]
로 전환
import java.util.ArrayList;
class Solution {
public String[] solution(String my_str, int n) {
String[] answer = {};
ArrayList<String> answerArrList = new ArrayList();
// 1.
for (int i = 0; i < my_str.length(); i+=n) {
// 2.
int end = i + n;
// 3.
if (end < my_str.length()) {
answerArrList.add(my_str.substring(i, end));
} else {
answerArrList.add(my_str.substring(i));
}
}
// 4.
answer = answerArrList.toArray(new String[0]);
return answer;
}
}