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
- 자바
- 자바스크립트
- re_lunchu
- 현대
- 탐욕법
- 토이프로젝트
- 오블완
- 딥러닝
- Baekjoon
- 스마트팩토리
- 백준
- softeer
- 프로그래머스
- heapq
- boj
- Python
- Java
- 파이썬
- cim
- 현대자동차
- cs공부
- GAN
- 티스토리챌린지
- Algorithm
- alogorithm
- 힙큐
- JavaScript
- 알고리즘
- programmers
- 소프티어
Archives
- Today
- Total
eaz_coding
[Programmers] 문자열 압축(Python, Javascript) 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/60057
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
Python
def solution(s):
n = len(s)
answer = n
for i in range(1, n//2+1):
tmp, re = s, ''
while len(tmp) > i:
t, tmp = tmp[:i], tmp[i:]
cnt = 1
while tmp[:i] == t:
cnt += 1
tmp = tmp[i:]
if cnt > 1:
re += (str(cnt)+t)
else:
re += t
re += tmp
answer = min(answer, len(re))
return answer
Javascript
function solution(s) {
var answer = s.length;
const n = s.length;
for (let i=1; i < n/2+1; i++){
let tmp = s;
let re = "";
while (tmp.length > i) {
let t = tmp.slice(0, i);
tmp = tmp.slice(i);
let cnt = 1;
while (tmp.slice(0, i) == t){
cnt += 1;
tmp = tmp.slice(i);
}
if (cnt > 1){
re += cnt.toString();
}
re += t;
}
re += tmp;
answer = answer > re.length ? re.length : answer;
}
return answer;
}
'eaz_algorithm' 카테고리의 다른 글
[Programmers] 광물 캐기(Python, Javascript) (0) | 2024.06.26 |
---|---|
[Programmers] 우박수열 정적분(Python, Javascript) (0) | 2024.06.26 |
[Programmers] 하노이의 탑(Python, Javascript) (0) | 2024.06.21 |
[Programmers] 리코쳇 로봇(Python, Javascript) (1) | 2024.06.18 |
[Programmers] 테이블 해시 함수(Python, Javascript) (0) | 2024.06.17 |