📜

Truncate String

Truncate String - Explanation

쉬움 문자열 O(n) O(n)

Problem Summary

Write a function that truncates a string to a given length and adds "..." if truncated.

Go to Problem →

Detailed Explanation

이 문제는 **조건부 문자열 처리**와 **텍스트 말줄임** 패턴을 학습합니다. UI에서 자주 사용되는 기능입니다. **알고리즘 동작** 1. 문자열 길이가 maxLength 이하면 그대로 반환 2. 그렇지 않으면 maxLength까지 자르고 "..." 추가 **"Hello World", maxLength=5 처리** - "Hello World".length (11) > 5 → 자르기 필요 - slice(0, 5) → "Hello" - "Hello" + "..." → "Hello..." **slice(0, maxLength)의 특성** - 시작 인덱스 0부터 maxLength 직전까지 추출 - maxLength가 문자열 길이보다 크면 전체 문자열 반환 **경계 조건** - 길이가 정확히 maxLength면 자르지 않음 (<=) - 길이가 더 짧으면 그대로 반환 **실용적 활용** - 긴 제목 표시 - 미리보기 텍스트 - 테이블 셀의 텍스트 오버플로우 **CSS와의 비교** CSS의 text-overflow: ellipsis도 비슷한 기능을 하지만, JavaScript로 구현하면 더 정밀한 제어가 가능합니다.

Solution Code

solution.js
function truncate(str, maxLength) {
  if (str.length <= maxLength) return str;
  return str.slice(0, maxLength) + '...';
}

Key Concepts from This Problem

1. slice 메서드
2. 조건부 처리
3. 문자열 연결
4. 말줄임 패턴

Common Mistakes

<= 대신 <를 사용하면 정확히 maxLength인 경우에도 ...가 붙습니다
slice의 두 번째 인자는 포함되지 않음을 기억하세요
...을 포함한 전체 길이를 고려해야 하는 경우도 있습니다

Hints

Hint 1: 길이를 비교한 후 slice를 사용하세요.

Complexity Analysis

Time Complexity

O(n)

Grows linearly with input size

Space Complexity

O(n)

Uses memory proportional to input size

Related Tags

#문자열 #slice #조건문