문제 정의
문자열을 지정된 글자 수 기준으로 나누는 breakString() 함수를 작성해야 합니다. 이 함수는 두 개의 인수를 받습니다.
- 첫 번째 인수: 분할 대상이 되는 문자열
- 두 번째 인수: 임계값(글자 수). 이 글자 수에 도달하면 공백을 줄 바꿈 문자(
'\n')로 반복해서 대체합니다.
구현 아이디어
접근 방식은 다음과 같습니다.
for루프를 사용해 문자열의 각 문자를 순회하면서 현재까지 센 글자 수를 카운트 변수로 관리합니다.- 카운트가 한도(
limit)에 도달한 상태에서 공백을 만나면, 새 문자열에는 공백 대신 줄 바꿈 문자를 삽입하고 카운트를 0으로 초기화합니다. - 그 외의 경우에는 원본 문자열의 문자를 그대로 새 문자열에 추가하고 카운트를 1씩 증가시킵니다.
전체 코드
const text = 'Hey can I call you by your name?';
const breakString = (str, limit) => {
let brokenString = '';
for(let i = 0, count = 0; i < str.length; i++){
if(count >= limit && str[i] === ' '){
count = 0;
brokenString += '\n';
}else{
count++;
brokenString += str[i];
}
}
return brokenString;
}
console.log(breakString(text, 4));
실행 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
Hey can
I call
you by
your
name?
출력 결과를 보면, 4글자를 넘어선 시점에 처음 만나는 공백마다 줄 바꿈이 삽입되어 문자열이 여러 줄로 나뉜 것을 확인할 수 있습니다. 이처럼 임계값과 공백 위치만 잘 활용하면, 단어 단위로 자연스럽게 줄 바꿈되는 텍스트 처리 로직을 간단히 구현할 수 있습니다.