알고리즘/JAVA
[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