-
[Java 자바] 프로그래머스 Lv 0 - 잘라서 배열로 저장하기Study/Java 2024. 11. 25. 21:08728x90반응형
목차
1. 문제 설명
728x90문제 설명
문자열 my_str과 n이 매개변수로 주어질 때,
my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_str의 길이 ≤ 100
- 1 ≤ n ≤ my_str의 길이
- my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
2. 입출력 예시
입출력 예시
#1
"abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.
#2
"abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.
3. 문제 풀이
반응형문제 풀이
1. 배열 길이를 구하기 위해서 arraySize 배열을 만든 후, my_str의 길이가 n의 길이로 나누었을 때, 나머지가 없다면 my_str의 길이를 n으로 나눈 값으로 설정하고, 나머지가 있다면 my_str의 길이를 n으로 나눈 값에서 1을 더하여 설정한다.
2. answer 배열의 길이를 arraySize로 설정한다.
3. 반복문을 사용하여 arraySize의 값만큼 반복한다.
4. substring에서 길이 초과를 방지하기 위해 temp 변수를 만들어서 (i*n)+n과 my_str의 길이 중에 더 작은 값을 넣는다.
5. answer[i]에 my_str을 i*n부터 temp까지 글자수를 자른 값을 넣는다.
6. 최종 answer을 반환한다.
class Solution { public String[] solution(String my_str, int n) { int arraySize = my_str.length()%n==0 ? my_str.length()/n : (my_str.length()/n)+1; String[] answer = new String[arraySize]; for(int i=0; i<arraySize; i++){ int temp = Math.min((i*n)+n, my_str.length()); answer[i] = my_str.substring(i*n, temp); } return answer; } }
메모
Math.min(a, b) : a와 b중 더 작은 값 반환한다. 입력된 데이터 타입에 따라 반환되는 타입도 같게 반환
728x90반응형'Study > Java' 카테고리의 다른 글
[Java 자바] 프로그래머스 Lv 0 - 직사각형 넓이 구하기 (0) 2024.11.27 [Java 자바] 프로그래머스 Lv 0 - 중복된 숫자 개수 (0) 2024.11.26 [Java 자바] 프로그래머스 Lv 0 - 머쓱이보다 키 큰 사람 (0) 2024.11.24 [Java 자바] 프로그래머스 Lv 0 - 7의 개수 (1) 2024.11.23 [Java 자바] 프로그래머스 Lv 0 - 문자열 정렬하기 (2) (0) 2024.11.22