Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- optional chanining
- firebase
- 프로그래머스
- Python #Baekjoon
- react
- CSS
- es6
- Python #CodeUp
- es11
- Default parameter
- 카카오맵 api
- 카카오맵
- css #html
- HTML #CSS
- JavaScript
- React Kakao map
- spread operation
- Nullish Coalescing Operator
- Next
- React #Hooks
- Hooks
- BOJ
- Template literals
- nextjs
- Python
- Redux
- HTML
Archives
- Today
- Total
거북이개발자
[프로그래머스] 문자열 압축 본문
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 |