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 |
Tags
- @RestController
- 프로그래머스
- 코딩테스트
- 김영한
- Model1
- 뉴렉처
- 기술 대비
- 인텔리제이
- MVC
- select
- JSP
- SQL
- 서브쿼리
- 스프링
- Lombok
- toUpperCase
- DDL
- MVC2
- AOP
- 자바
- 프레임워크
- 코테
- 인프런
- @Controller
- 메이븐
- Model2
- 서블릿
- Join
- 롬복
- STS
Archives
- Today
- Total
Heestory
10.가장 짧은 문자 거리 / 11.문자열 압축 본문
본 내용은 저작권상 수업 내용을 간단하게 정리한 것입니다.
10.최소 거리
- 정방향/역방향 각각 for문을 돌린다.
- 마지막 for문에선 Math.min을 이용하여 정방향/역방향에서의 거리를 비교하여 최소거리를 답한다.
//받은 문자열 길이만큼의 배열 생성
int[] answer = new int[str.length()];
//가장 기본 값 p=1000로 설정
int p =1000;
for(int i=0;i<str.length();i++){
if(str.charAt(i)==c){
p=0;
answer[i]=p;
}else{
p++;
answer[i]=p;
}
}
//최소 거리를 구해야하기 때문에 for문을 역으로 이중으로 돌려야함
for(int i=str.length()-1;i>=0;i--){
//이미 위에서 p=0, answer[]배열에 넣었음, 최소거리는 0으로 동일하기 때문에 p=0이라고만 한다.
if(str.charAt(i)==c) p=0;
//p값을 앞의 값과 비교하여 최소 거리를 answer에 넣는다.
else{
p++;
answer[i]=Math.min(answer[i], p);
}
}
11.문자열 압축
//받은 문자열 맨 끝에 빈문자 하나 추가, 추가한 이유는 아래 배열 에러를 잡기 위함
str = str+" ";
int cnt=1;
//길이 주의, 빈문자 전까지만 진행
for(int i=0;i<str.length()-1;i++){
if(str.charAt(i)==str.charAt(i+1)) cnt++;
else{
answer += str.charAt(i);
//받은 cnt는 String 형태여야 한다.
if(cnt>1) answer += String.valueOf((cnt));
cnt=1;
}
}
'개발(~국비) > 코테대비' 카테고리의 다른 글
2-3.가위바위보 (0) | 2022.11.13 |
---|---|
2-1.큰 수 출력/보이는 학생 (0) | 2022.11.11 |
08.replaceAll(정규식 이용) / 09.숫자만 추출 (0) | 2022.11.02 |
07.회문 문자열 (0) | 2022.11.01 |
06.중복 제거 (0) | 2022.11.01 |