프로그래머스 Lv.0
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
1) 처음에는 Math함수의 ceil을 써서 my_str의 길이를 n으로 나눈 뒤 올림을 할 생각이었다.
2) 올림을 하면 my_str이 n으로 나누어 떨어지지 않아도 한번 더 실행할테니까 ?
3) 결과는 실패..
import java.lang.Math;
import java.util.ArrayList;
class Solution {
public String[] solution(String my_str, int n) {
ArrayList<String> answer = new ArrayList<>();
int num = (int) Math.ceil(my_str.length()/n);
for (int i = 0; i < num; i++) {
answer.add(my_str.substring(i*n, i*n + n));
}
return answer.toArray(new String[0]);
}
}
// 실행한 결괏값 ["abc1Ad","dfggg4"]이 기댓값 ["abc1Ad","dfggg4","556b"]과 다릅니다.
사실 아직도 왜 틀렸는지 이해 모담 ..
그래서 찾아보니 다들 my_str이 n으로 나누어 떨어지는 경우, 안나누어 떨어지는 경우를 나눠서 풀이했더라
코드 줄여보려다가 시간 와장창 잡아먹음 ㅎㅎ
그래서 남들 하는대로 했다 결국
import java.util.ArrayList;
class Solution {
public String[] solution(String my_str, int n) {
ArrayList<String> answer = new ArrayList<>();
int num = my_str.length() / n;
for (int i = 0; i < num; i++) {
answer.add(my_str.substring(i * n, i * n + n));
} if ((my_str.length() % n) != 0) {
answer.add(my_str.substring
```
코드를 입력하세요
```((my_str.length() / n ) * n));
}
return answer.toArray(new String[0]);
}
}
진짜 다들 와.. 너무 깔끔하다 싶지만
int resultCnt = (my_str.length() + n - 1) / n;
이분 천재신가 싶었다 다음에 써먹어야지 ㅎㅎ