[LeetCode] 443. String Compression, Medium

2025. 4. 16. 14:02·CodingTest/LeetCode
반응형

1. 문제

  • 문자열 배열 chars가 주어질 때, 아래 알고리즘에 따라 압축한 문자열 길이를 반환하라.
    • 빈 문자열 s부터 시작.
    • 연속되는 동일한 문자열을 그룹화.
    • 그룹화한 문자열 길이가 1인 경우, 다음 문자열에 붙인다.
    • 원본 배열 chars를 수정하여 압축한 결과를 담아 길이를 반환한다.
  • a, a, b, b, b, c, c는 a,2,b,2,c,2로 압축.
  • a, b, b, b,b ... 에서 a는 그룹 길이가 1이므로, a, b, 1, 2로 압축.

2. 해결

function compress(chars: string[]): number {
    let s = ''
    let current = chars[0];
    let count = 0;
    for(let i = 0; i< chars.length; i++) {
        if(current !== chars[i]) {
            s += current + (count !== 1 ? count : '');
            count = 0;
            current = chars[i];
        }
        count++;
    }

    s += current + (count !== 1 ? count : '');
    const sArr = s.split('')
    for(let i =0; i<s.length; i++) {
        chars[i] = sArr[i];
    }

    chars.splice(s.length)

    return chars.length;
};
  • chars를 탐색하면서, 현재 문자열이 변경되면 s에 count와 함께 담는다. (count가 1이 아닌 경우만)
  • count와 current 갱신.
  • 완성된 s를 배열로 나눠 chars에 담아준다.
  • chars 뒤에 남는 문자열은 splice로 제거.

 

저작자표시 (새창열림)
'CodingTest/LeetCode' 카테고리의 다른 글
  • [LeetCode] 11. Container With Most Water, Medium
  • [LeetCode] 392. Is Subsequence, Easy
  • [LeetCode] 334. Increasing Triplet Subsequence, Medium
  • [LeetCode] 238. Product of Array Except Self, Medium
뜸부깅
뜸부깅
코딩에 대한 여러 개인적인 생각을 정리하고 공부를 하는 공간입니다!!
  • 뜸부깅
    코오오딩
    뜸부깅
  • 전체
    오늘
    어제
    • Note (429)
      • Skill (31)
        • Java & Spring (9)
        • Javascript & HTML & CSS (0)
        • React (0)
        • Next.js (22)
      • CodingTest (389)
        • 백준 온라인 저지(BOJ) (140)
        • 프로그래머스(Programmers) (79)
        • LeetCode (170)
      • Algorithm & Data Structure (6)
      • [Project] 포트폴리오 (3)
        • Front end (3)
        • Back end (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    component-scan
    알고리즘
    BOJ
    백준7576
    next 14
    TypeScript
    백준
    Easy
    프로그래머스
    자바
    medium
    boj2108
    meidum
    백준7576자바
    백준1427
    leetcode 2236
    boj1427
    백준2751
    백준1260
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜸부깅
[LeetCode] 443. String Compression, Medium
상단으로

티스토리툴바