거북이개발자

[프로그래머스] 문자열 압축 본문

Algorithm(JavaScript)

[프로그래머스] 문자열 압축

류정식 2021. 7. 5. 21:21

0. 제목

  • 프로그래머스 문자열 압축

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/60057

 

코딩테스트 연습 - 문자열 압축

데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문

programmers.co.kr

 


2. 풀이

  • for 문으로 1개식 2개씩... 반복하는것들 케이스마다 배열에 넣는다
  • 중복되는 값이 있으면 for문에 넣어서 몇개가 중복되는지 본다
  • 문자열 최소길이값을 출력한다.

 


3. 코드

function solution(s) {
    var answer = 0;
    let lengths = []
    let lengths_len = []
    var i = 0;

    for (i = 1; i < s.length + 1; i++) {

        var j = 0
        var insert = ''
        for (j = 0; j < s.length; j+=i) {
            var temp = 1;
            var k = 0;
            if (s.slice(j, j + i) === s.slice(j + i, j + 2 * i)) {
                for (k = j; k < s.length; k += i) {
                    if (s.slice(k, k + i) === s.slice(k + i, k + 2 * i)) {
                        temp += 1
                        j += i
                    }
                    else {
                        break;
                    }
                }
                insert = `${insert}${temp}${s.slice(j, j + i)}`
            }
                else{
                    insert = `${insert}${s.slice(j,j+i)}`;
                }

            }
            lengths.push(insert)
        }

        for(var z in lengths){
            lengths_len.push(lengths[z].length)
        }
    
    
        console.log(lengths_len)
        answer=Math.min.apply(null, lengths_len)
        return answer;
    }

 

 

4. 보완할점

  • for문을 3번 쓸 필요없을 거 같다.
  •  

'Algorithm(JavaScript)' 카테고리의 다른 글

[인프런] 연속 부분 수열2  (2) 2021.07.07
[인프런] 연속 부분수열1  (0) 2021.07.07
[인프런] 공통원소 구하기  (0) 2021.07.06
[인프런] 두 배열 합치기  (0) 2021.07.06
[프로그래머스] 문자열 압축  (0) 2021.07.06
Comments