[JAVA] 10. 가장 짧은 문자거리
2021. 4. 15. 18:42
728x90
설명
한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램을 작성하세요.
풀이
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String input = in.next();
char input2 = in.next().charAt(0);
int[] answer = new int[input.length()];
char[] arr = input.toCharArray();
int max = 1000;
//왼쪽에서부터 INPUT2와의 거리
for (int i=0; i<arr.length; i++) {
if(arr[i] == input2){
max = 0;
answer[i] = 0;
}else{
max++;
answer[i] = max;
}
}
//오른쪽에서부터 INPUT2와의 거리
max = 1000;
for (int i=arr.length-1; i>=0; i--) {
if(arr[i] == input2){
max = 0;
}else{
max++;
// 더 작은 값 넣기
answer[i] = Math.min(answer[i], max);
}
}
for (int i : answer) {
System.out.print(i+ " ");
}
}
}
728x90
'알고리즘 > JAVA' 카테고리의 다른 글
[JAVA] 12. 암호(replace(), parseInt(string, 2)) (0) | 2021.04.15 |
---|---|
[JAVA] 11. 문자열 압축 (0) | 2021.04.15 |
[JAVA] 9. 숫자만 추출 (0) | 2021.04.14 |
[JAVA] 8. 유효한 팰린드롬 (0) | 2021.04.14 |
[JAVA] 7. 회문 문자열 (0) | 2021.04.14 |