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번 쓸 필요없을 거 같다.