일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자바
- 비트마스크
- Java
- 2019 카카오 공채
- c++
- 젠킨스
- 프로그래머스
- 백준
- map
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 2018 KAKAO BLIND RECRUITMENT
- CS 스터디
- 2020 카카오 공채
- 카카오
- 2019 KAKAO BLIND RECRUITMENT
- 알고리즘
- dfs
- gcp
- 2020 KAKAO BLIND RECRUITMENT
- 삼성 SW 역량테스트
- 부스트코스
- 삼성 SW 기출문제
- bfs
- 2018 카카오 공채
- Baekjoon
- 카카오 공채
- 2018 카카오
- 2018 KAKAO BLIND RECRUITMENT 1차
- gradle
- set
Archives
- Today
- Total
아무코딩
[2020 KAKAO BLIND RECRUITMENT] 문자열 압축 본문
풀이과정
검사는 단위별로 진행한다.
일치하는 경우에는 그대로 다음 단위를 검사
일치하지 않는 경우에는 출력할 string에 출력한다.
이때, 1인경우에는 숫자를 출력하지 않으므로 따로 처리해준다.
주의사항 문자열의 길이가 1인경우가 존재한다 이를 잘 처리해줘야됨. 테스트 케이스 5번이 아마 문자열 길이가 1일것일거같다.
소스코드
더보기
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#include <string>
#include <vector>
#include <algorithm>
#include <limits.h>
using namespace std;
int unit_mapping(string str, int unit) {
string result = "";
int same_cnt = 1;
int cnt = 0;
for (int j = 0; j < unit; j++) {
if (str[i + j] == str[i + (same_cnt*unit) + j])
cnt++;
else break;//일치하지 않는다면
}
if (cnt == unit) { //일치하는 경우
same_cnt++;
}
else {
if (same_cnt == 1) {
i += unit;
}
else {
string int_str = to_string(same_cnt);
result += int_str;
i = i + same_cnt * unit;
same_cnt = 1;
}
}
}
//cout << result << endl;
return result.size();
}
int solution(string s) {
int min_size = INT_MAX;
int size = 0;
if (s.length() == 0)
min_size = 0;
for (int i = 1; i <= s.length() / 2 + 1; i++) {
size = unit_mapping(s, i);
min_size = min(min_size, size);
}
return min_size;
}
|
문제링크 : https://programmers.co.kr/learn/courses/30/lessons/60057
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[2019 카카오 개발자 겨울 인턴십 코딩테스트] 문제2. 튜플 (0) | 2020.04.03 |
---|---|
[2019 카카오 개발자 겨울 인턴십 코딩테스트] 문제1. 크레인 인형뽑기 게임 (0) | 2020.04.03 |
[2019 KAKAO BLIND RECRUITMENT] 블록 게임 (0) | 2020.04.01 |
[2020 KAKAO BLIND RECRUITMENT] 괄호 변환 (0) | 2020.03.24 |
[2020 KAKAO BLIND RECRUITMENT] 블록 이동하기 (0) | 2020.03.19 |
Comments