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 | 31 |
Tags
- HTML
- 카카오맵 api
- JavaScript
- Default parameter
- 카카오맵
- BOJ
- Nullish Coalescing Operator
- 프로그래머스
- react
- Template literals
- firebase
- HTML #CSS
- Python #CodeUp
- Redux
- nextjs
- React #Hooks
- CSS
- es11
- css #html
- Next
- Python #Baekjoon
- optional chanining
- Hooks
- spread operation
- es6
- React Kakao map
- Python
Archives
- Today
- Total
거북이개발자
[프로그래머스] 문자열 압축 본문
0. 제목
- 프로그래머스 문자열 압축
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/60057
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