반응형
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
- 벤쿠버집구하기
- FIDO 환불
- FLEX5
- Java
- 파이도 환불
- FK 설정
- 자바
- 벤쿠버렌트
- QA엔지니어
- IntelliJ
- 프로그래머스
- 백준알고리즘
- 설탕문제
- Lesson3
- 리눅스
- 데이터의 무결성
- 부산입국
- binaray_gap
- 엔테크서비스
- 벤쿠버 렌트
- Linux
- database연결
- 1463번
- 레노보노트북
- BC렌트
- codility
- Lesson2
- 언마운트
- 외래키설정
- 캐나다워홀
Archives
- Today
- Total
대충이라도 하자
프로그래머스 2020 kakao blind recruitment 문자열 본문
반응형
- 아이디어는 잘 생각했는데 항상 구현, 오류에서 막히는 듯....ㅜㅜ
1. 맨 처음, 1개씩 잘라서 압축, 2개씩 잘라서 압축 이 부분에서 나는 s.length()만큼 반복문을 돌렸는데
생각해보니 나누기 2해서 돌려도 된다. 왜냐하면 2개씩 나눠지지 않는 경우라면, 결국 의미가 없기 때문에
2. 예외의 경우를 잘 생각해보자.
2-1)메소드를 만드는 부분에서 제일 중요한 것은 잘라낼 수가 s.length()에 나누어 떨어지지 않는 경우
2-2) 마지막은 반복문에 빠져나와 버려서 마지막 문자열 남는 부분을 꼭 더해줘야 한다.
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
|
class Solution {
public int solution(String s) {
int len = s.length();
int answer = len;
for(int i = 1; i<=len/2; i++){
answer = Math.min(answer, dfs(i, s));
}
return answer;
}
private int dfs(int num, String s){
//몇 개 단위로 자를지 정해지면 압축하는 함수
int count = 1;
String temp = "";
String result ="";
int len = s.length();
for(int i=0 ; i<=len;i+=num){
String now;
if(i >=len){
now=""; //아무것도 없음
}else if(len < i+num){//마지막 현재 문자열
now = s.substring(i);
}else {
now = s.substring(i ,i+num);
}
if(i != 0){
if(now.equals(temp)){
count++;
}else if(count>=2) {
result += count+ temp;
count=1;
}else {
result += temp;
}
}
temp = now;
}
result +=temp; //맨 마지막 남은 부분
return result.length();
}
}
|
cs |
반응형
'꼬꼬마 개발자 노트 > Coding Problems' 카테고리의 다른 글
프로그래머스-멀쩡한 사각형 (0) | 2022.01.04 |
---|---|
프로그래머스 - 오픈채팅방 (2019 KAKAO BLIND RECUITMENT) (0) | 2022.01.03 |
프로그래머스 없는 숫자 더하기 (0) | 2021.10.21 |
프로그래머스 - 로또의 최고 순위와 최저 순위 (java) (0) | 2021.10.12 |
Leetcode - Merge Two Binary Trees (0) | 2021.10.08 |
Comments