일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- #알고리즘 #백준 #15684 #백준15684 #algorithm #baekjoon #baekjoon15684 #C++
- #알고리즘 #백준 #2352 #백준2352 #algorithm #baekjoon #baekjoon2352 #C++
- #알고리즘 #algorithm #프로그래머스 #2020카카오공채 #괄호변환 #programmers #C++
- 책리뷰
- 클린코드
- #알고리즘 #백준 #15683 #백준15683 #algorithm #baekjoon #baekjoon15683 #C++
- #알고리즘 #algorithm #프로그래머스 #2020카카오공채 #문자열압축 #programmers #C++
- #알고리즘 #백준 #2580 #백준2580 #algorithm #baekjoon #baekjoon2580 #Java
- #알고리즘 #백준 #1525 #백준1525 #algorithm #baekjoon #baekjoon1525 #C++
- #알고리즘 #백준 #17472 #백준17472 #algorithm #baekjoon #baekjoon17472 #C++
- #알고리즘 #백준 #1793 #백준1793 #algorithm #baekjoon #baekjoon1793 #C++
- #알고리즘 #백준 #5214 #백준5214 #algorithm #baekjoon #baekjoon5214 #C++
- #알고리즘 #백준 #17837 #백준17837 #algorithm #baekjoon #baekjoon17837 #C++
- #알고리즘 #algorithm #프로그래머스 #2020카카오공채 #외벽점검 #programmers #C++
- 개발자취미
- #알고리즘 #백준 #3190 #백준3190 #algorithm #baekjoon #baekjoon3190 #C++
- #알고리즘 #백준 #12094 #백준12094 #algorithm #baekjoon #baekjoon12094 #C++
- #알고리즘 #백준 #17406 #백준17406 #algorithm #baekjoon #baekjoon17406 #C++
- 스레드 #동시성 #thread #process #
- #알고리즘 #백준 #1987 #백준1987 #algorithm #baekjoon #baekjoon1987 #Java
- #알고리즘 #백준 #17140 #백준17140 #algorithm #baekjoon #baekjoon17140 #C++
- #알고리즘 #백준 #14888 #백준14888 #algorithm #baekjoon #baekjoon14888 #C++
- 개발서
- #알고리즘 #백준 #2573 #백준2573 #algorithm #baekjoon #baekjoon2573 #C++
- #알고리즘 #algorithm #프로그래머스 #2020카카오공채 #블록이동하기 #programmers #C++
- #알고리즘 #백준 #2616 #백준2616 #algorithm #baekjoon #baekjoon2616 #Java
- #알고리즘 #백준 #17136 #백준17136 #algorithm #baekjoon #baekjoon17136 #C++
- #알고리즘 #백준 #1260 #백준1260 #algorithm #baekjoon #baekjoon1260 #Java
- #알고리즘 #백준 #4386 #백준4386 #algorithm #baekjoon #baekjoon4386 #C++
- CleanCode
Archives
- Today
- Total
개발자 일기장.
[2020 카카오 공채] 문자열 압축 본문
문자열 압축
Problem?
문제 링크 : [2020 카카오 공채] 문자열 압축
Solution
구현 문제
비교하는 문자열의 길이를 해당 문자열의 크기의 반부터 1까지 반복하며 문자열을 단순 비교한다.
"비교하는 문자열의 길이"가 끝에 도달하기 전까지 반복한다.
특이사항으로 반복되는 횟수가 10번 이상인 경우 자릿수를 고민해줘야 한다.
가정 getSize() : 자릿수를 구하는 함수 solution() : 문제 해결 코드
slen : 전체 문자열의 길이 len : 비교하는 문자열의 길이 start_pos : 문자열을 비교하는 위치 cnt : 반복 여부 확인 |
Code(핵심 코드)
int solution(string s) {
int slen = s.length();
int ans = slen;
// len--
for (int len = slen / 2; len > 0; len--) {
int start_pos = 0;
int t_len = slen;
int cnt = 0;
while (start_pos + len <= slen) {
// if sub string is same pattern
if (s.substr(start_pos, len).compare(s.substr((start_pos + len), len)) == 0) {
cnt++;
}
else {
if (cnt >= 1) {
t_len -= (cnt * len); // delete same pattern
t_len += getSize(cnt + 1); // add num, +1 is (I'm not count original key)
}
cnt = 0;
}
start_pos += len;
}
ans = min(ans, t_len);
}
return ans;
}
쉬웠던 구현 문제.
아이디어가 중요할 것 같다.
* 문제 있을 시 삭제하겠습니다.
'취업 > Algorithm.' 카테고리의 다른 글
백준 17406. 배열 돌리기4 (0) | 2020.03.28 |
---|---|
[2020 카카오 공채] 블록 이동하기 (0) | 2020.03.22 |
백준 17136. 색종이 붙이기 (0) | 2020.03.22 |
백준 1525. 퍼즐 (0) | 2020.03.22 |
백준 4386. 별자리 만들기 (0) | 2020.03.16 |