잘라서 배열로 저장하기
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;
}
}