반응형
프로그래머스 <문자열 압축> 예제문제를 풀어보았다. 동작은 하지만 주먹구구의 코드라는 생각이 든다.
내가 뭘 하고 있는건가, 코드가 지저분해지고 있는 것 같다는 생각이 코딩을 하면서도 스스로 드는 것이다.
해당 문제는 주어진 문자열을 조건에 맞춰 압축하고 가장 최적의 압축을 하였을 때의 문자열 길이를 출력하는 것이 목적이다. 코드를 더욱 간결하게 만들기 위한 공부를 해야겠다.
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
53
54
55
56
57
58
|
import java.util.ArrayList;
class Solution {
public int solution(String s) {
String answerString = "";
int answer = s.length();
ArrayList<String> sArray = new ArrayList<String>();
for(int i = 1; i<= s.length()/2;i++){
answerString = "";
sArray.clear();
for(int n = 0; n<=s.length()-1;n+=i){
try {
sArray.add(s.substring(n,n+i));
} catch (Exception e) {
sArray.add(s.substring(n,s.length()));
}
}
int zipCount = 1;
for(int j =0 ; j<sArray.size();j++) {
String temp = sArray.get(j);
if(j == sArray.size()-1) {
if(zipCount ==1) {
answerString += temp;
break;
}else if(zipCount !=1) {
answerString += (Integer.toString(zipCount)+temp);
break;
}
}
if(temp.equals((sArray.get(j+1)))) {
zipCount ++;
}else if(!temp.equals((sArray.get(j+1)))) {
if(zipCount ==1) {
answerString += temp;
}else if (zipCount != 1) {
answerString += (Integer.toString(zipCount)+temp);
}
zipCount = 1;
}
}
if(answer>answerString.length()) {
answer = answerString.length();
}
}
return answer;
}
}
|
cs |
반응형
'개발 > 코딩' 카테고리의 다른 글
[프로그래밍] 프로그래머스 예제문제 풀어보기 <오픈채팅방> (성공) (0) | 2022.03.20 |
---|---|
[프로그래밍] 프로그래머스 예제문제 풀어보기 <오픈채팅방> (실패) (0) | 2022.03.20 |
[프로그래밍] 프로그래머스 예제문제 풀어보기 <숫자 문자열과 영단어> (성공) , java String 에서 int int에서 String replaceAll (2) | 2022.03.16 |
[프로그래밍] 프로그래머스 예제문제 풀어보기 <신규 아이디 추천> (성공) (0) | 2022.03.16 |
[프로그래밍] JAVA자바연습 insert삽입정렬 (0) | 2022.03.13 |