728x90
반응형
오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다.
오늘 배운 것
1. 문자 간 거리를 구하는 방법 로직
앞으로 갔다 뒤로 갔다 한 번씩 해주면 된다. 방향 설정하는 게 중요하다. 앞으로 가면서 최소 거리를 설정하고, 다시 되돌아오면서 최소 거리를 비교하는 로직.
2. 문제 풀이
import java.util.Scanner;
public class Main {
public static int[] solution(String str,char c){
int [] answer = new int[str.length()];
char[] chars = str.toCharArray();
int p = str.length();
for (int i = 0; i < answer.length; i++) {
if(chars[i] == c){
p=0;
}else{
p++;
}
answer[i] = p;
}
p = str.length();
for (int i = str.length()-1; i >=0 ; i--) {
if(chars[i] == c){
p=0;
answer[i] = p;
}else{
p++;
answer[i] = Math.min(answer[i],p);
}
}
return answer;
}
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String str = kb.next();
char c = kb.next().charAt(0);
for (int i : solution(str, c)) {
System.out.print(i+" ");
}
}
}
728x90
반응형
'알고리즘 > 문자열, 정렬' 카테고리의 다른 글
[알고리즘] 암호 with Java, replace(), subString(a,b),parseInt(a,2) (0) | 2022.02.27 |
---|---|
[알고리즘] 문자열 압축 with Java, 문자열에 빈 문자 하나 더해주기 (0) | 2022.02.27 |
[알고리즘] 숫자만 추출 with Java, isDigit() (0) | 2022.02.27 |
[알고리즘] 유효한 팰린드롬 with Java, 정규식, replaceAll() (0) | 2022.02.26 |
[알고리즘] 회문 문자열 with Java, equalsIgnoreCase() (0) | 2022.02.26 |