-
문제
https://programmers.co.kr/learn/courses/30/lessons/60057
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr
How to Solve ?
function solution(s) { let answer = Infinity; const len = s.length; // i 루프는 압축 문자열의 길이를 증가 시키는 용도. for ( let i = 0; i < len; i++ ) { let count = 1; let tmpStr = ""; const jump = i + 1; // j 루프는 압축 문자열의 길이로 전체 문자열을 압축 // 압축된 문자열은 tmpStr에 저장 for ( let j = 0; j < len; j += jump ) { // 현재 압축 문자열과 다음 압축 문자열을 만든다. let curSub = s.substring(j, j + jump); let nextSub = s.substring(j + jump, j + (jump*2)); // 같으면 카운트 올려준다. if ( curSub === nextSub ) count += 1; else { // 같지 않을 때, if ( count !== 1 ) { // 숫자와 이전까지 반복된 수 + 문자열을 더해준다. tmpStr += count + curSub; } else { // 1이라는건 반복된 문자열이 없다는 것. tmpStr += curSub; } // 1로 초기화 count = 1; } } answer > tmpStr.length ? answer = tmpStr.length : answer; } return answer ; }
'PS > 프로그래머스' 카테고리의 다른 글
[ 프로그래머스_ Lv3 ] 야근 지수 ( 그리디 - 자바스크립트 ) (0) 2021.06.26 [ 프로그래머스_Lv2 ] 튜플 ( 문자열 - 자바스크립트 ) (0) 2021.06.26 [ 프로그래머스_Lv2 ] 파일명 정리하기 ( 문자열 - 자바스크립트 ) (0) 2021.06.23 [ 프로그래머스_Lv3 ] 섬 연결하기 ( 크루스칼 - 자바스크립트 ) (0) 2021.06.20 [ 프로그래머스_Lv3 ] 단속카메라 ( 그리디 - 자바스크립트 ) (0) 2021.06.19 댓글