2138 - Divide a String Into Groups of Size k
info
- 문제 보기: 2138 - Divide a String Into Groups of Size k
- 소요 시간: 13분 23초
- 풀이 언어:
java
- 체감 난이도: 2️⃣
- 리뷰 횟수: ✅
풀이 키워드
스포주의
구현
풀이 코드
info
- 메모리: 42510 KB
- 시간: 0 ms
class Solution {
public String[] divideString(String s, int k, char fill) {
int rmd = s.length() % k; // remainder
if (rmd > 0) {
int need = k - rmd;
StringBuilder sb = new StringBuilder(s);
while (need-- > 0) sb.append(fill);
s = sb.toString();
}
int sdx = 0;
String[] ans = new String[s.length() / k];
for (int i = 0; sdx < s.length(); ++i, sdx += k)
ans[i] = s.substring(sdx, sdx+k);
return ans;
}
}
풀이 해설
문자열 s
를 k
개의 파티션 문자열로 나누되, 글자 수가 부족하면 fill
로 채워야 한다.
s
를 순회하면서 하나하나 문자를 뽑아 다시 붙이는 방식은 타이핑할게 많으니까
부족한 문자 개수만큼 사전에 fill을 붙여 s를 전처리하고
이후 substring하는 방식으로 풀이했다.
메모
- for문 double statement 오랜만에 쓰고 싶어서 막씀 *따라하지 마시오*