Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

csct3434

[level 2] 문자열 압축 - 60057 본문

프로그래머스

[level 2] 문자열 압축 - 60057

csct3434 2024. 2. 29. 03:24

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.LinkedList;

class Solution {

    public int solution(String s) {
        int answer = s.length();

        for (int len = 1; len <= s.length() / 2; len++) {
            LinkedList<String> tokens = new LinkedList<>();

            for (int i = 0; i < s.length(); i += len) {
                tokens.add(s.substring(i, Math.min(i + len, s.length())));
            }

            int idx = 0;
            StringBuilder result = new StringBuilder();
            while (idx < tokens.size()) {
                String token = tokens.get(idx++);

                int count = 1;
                while (idx < tokens.size() && token.equals(tokens.get(idx))) {
                    count++;
                    idx++;
                }

                if (count > 1) {
                    result.append(count);
                }
                result.append(token);
            }

            answer = Math.min(answer, result.length());
        }

        return answer;
    }
}

'프로그래머스' 카테고리의 다른 글

[level 2] 튜플 - 64065  (0) 2024.02.29
[level 2] 괄호 변환 - 60058  (0) 2024.02.29
[level 2] 방문 길이 - 49994  (1) 2024.02.29
[level 2] 스킬트리 - 49993  (0) 2024.02.29
[level 2] 타겟 넘버 - 43165  (0) 2024.02.29