문제
https://school.programmers.co.kr/learn/courses/30/lessons/120913
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
문자열을 n칸씩 건너뛰며 순회하면서 substring()을 이용해 잘라 ArrayList에 저장한다.
반복문의 증가식을 i += n으로 설정하면 시작 위치가 0, n, 2n처럼 이동하므로 원하는 길이만큼 문자열을 나눌 수 있다.
마지막 문자열의 길이가 n보다 작을 수도 있으므로 끝 인덱스가 문자열의 길이를 넘지 않도록 처리해야 한다. 이를 위해 Math.min()을 사용하여 i + n과 문자열의 길이 중 더 작은 값을 끝 인덱스로 사용한다.
int endIndex = Math.min(i + n, my_str.length());
answer.add(my_str.substring(i, endIndex));
substring(시작 인덱스, 끝 인덱스)는 끝 인덱스는 포함하지 않고 문자열을 잘라 반환한다.
코드
import java.util.*;
class Solution {
public ArrayList<String> solution(String my_str, int n) {
ArrayList<String> answer= new ArrayList<>();
for(int i=0;i<my_str.length();i+=n){
int endIndex = Math.min(i + n, my_str.length());
answer.add(my_str.substring(i,endIndex));
}
return answer;
}
}'PS > Programmers' 카테고리의 다른 글
| [프로그래머스 Lv.0] 이진수 더하기(Java) (0) | 2026.07.27 |
|---|---|
| [프로그래머스 Lv.0] 공 던지기(Java) (0) | 2026.07.26 |
| [프로그래머스 Lv.0] 가까운 수(Java) (0) | 2026.07.24 |
| [프로그래머스 Lv.0] 숨어있는 숫자의 덧셈(2)(Java) (0) | 2026.07.23 |
| [프로그래머스 Lv.0] 모스부호(1)(Java) (0) | 2026.07.22 |
댓글