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
- 자바 삼항연산자
- 자바 공배수
- 프로그래머스
- 자바 if문
- 자바 반복문
- react ag grid
- 자바 향상된 for문
- 정보처리기사실기
- 자바 switch문
- 자바 자동캐스팅
- 타입스크립트
- 자바 강제 캐스팅
- 변수
- 자바 조건문
- 항해99
- 자바 public
- 자바 while문
- 자바
- 항해99 2기
- 조코딩
- 자바 스캐너
- TypeScript
- MySQL
- 자바 구구단 출력
- 자바 for문
- 이클립스 DB연동
- java
- react with typescript
- Vue3
- Til
Archives
- Today
- Total
뇌 채우기 공간
[프로그래머스] 문자열 압축 javascript 본문
https://programmers.co.kr/learn/courses/30/lessons/60057
🎇 풀이방법
이중 for문을 돌려야한다.
"aabbaccc"
이라고 치자.
먼저 문자를 1개 단위로 자른다고 생각해보자.
a와 그 다음 a를 비교한다 -> 같다.
그러면 앞에 2를 적는다.
a와 b를 비교한다 -> 다르다.
그러면 2다음에 a를 적는다.
b와 b를 비교한다 -> 같다.
2a다음에 2를 적는다.
b와 a를 비교한다 -> 다르다.
2a2b를 적는다.
a와 c를 비교한다 -> 다르다.
2a2ba를 적는다. ....
이렇게 만든 문자 1개
그다음 문자를 2개 단위로 자른다고 가정한다.
aa와 bb를 비교한다. -> 다르다
aa를 적는다.
bb와 ac를 비교한다 -> 다르다
aabb를 적는다 ...
이렇게 자를 수 있는 문자는 문자열 길이의 2분의 1까지 자를 수 있기 때문에
여기서는 4개까지 자른 문자를 만들어서 배열에 넣는다.
그러면 배열에는 4개의 문자가 있을텐데 이중에서 가장 길이가 작은 문자의 길이를 리턴하면 된다.
코드 도움 https://sustainable-dev.tistory.com/153
function solution(s) {
//문자열 길이 1인 경우
if (s.length === 1) return 1;
let strings = [];
let answer = 0;
//첫번째 반복문은 압축할 문자열 길이 1부터 시작 ~ 문자열 길이 / 2
//최대로 압축할 수 있는 길이는 문자열/2까지
for(let i = 1; i <= parseInt(s.length / 2); i++) { //문자를 몇개 단위로 나눌 것인가
let cnt = 1;
let string = '';
for(let j = 0; j < s.length; j += i) {
const current = s.substr(j, i); //j인덱스 부터 i개를 추출한다.
const next = s.substr(j+i, i); //다음 글자
if(current === next) {
cnt++;
} else {
string = cnt > 1? string + cnt + current : string + current;
cnt = 1;
}
}
strings.push(string.length);
}
return Math.min(...strings);
}
728x90
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스] 기능개발 javascript (0) | 2021.09.14 |
---|---|
[프로그래머스] 완주하지 못한 선수 javascript (0) | 2021.09.14 |
[프로그래머스] 위장 java / HashMap 사용 (0) | 2021.06.01 |
[프로그래머스] 전화번호 목록 java /효율성 성공! Arrays.sort (2) | 2021.05.31 |
[프로그래머스] 가장 큰 수 java / 정렬/ Comparator, compare, compareTo 메소드로 String 오름차순 내림차순 정렬 (0) | 2021.05.28 |