Hyunebee

문자로부터 최소거리 - String 본문

Java/코테

문자로부터 최소거리 - String

Hyunebee 2022. 1. 15. 17:21

import java.util.Arrays;
import java.util.Scanner;

class Main {
    public int[] solution(String sentence, String target) {
        int point = 101;
        char t = target.charAt(0);

        int[] distance = new int[sentence.length()];


        //왼 -> 오
        for (int i = 0;i < distance.length; i++){
            if(sentence.charAt(i) == t){ // target 과 sentence가 같다면
                point = 0; // target부터 거리는 0
                distance[i] = point; // 0을 넣어주고
            }else {
                distance[i] = point; // 다르다면 임의의 점으로부터 점의 거리를 넣어준다.
            }
            point++;//오른쪽으로 한칸 이동했음으로 +1
        }
        
        //오른쪽으로 임의의 점의 거리 문자열의 최대길이가 100임으로 101으로 잡음
        point = 101;

        //오->왼
        for(int j=distance.length-1;j >=0;j--){
            if(sentence.charAt(j) == t){
                point = 0;
                distance[j] = point;
            }else { // 왼쪽으로 올때는 원래있던 distance배열 안에있던 거리정보보다 짧은때만 넣어줘야 최소거리가 된다.
                if(distance[j] > point){
                    distance[j] = point;
                }
            }
            point++;
        }

        return distance;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        String t = scanner.next();
        for(int x : T.solution(s, t)){
            System.out.print(x+" ");
        }
    }


}

'Java > 코테' 카테고리의 다른 글

암호 - String  (0) 2022.01.15
문자열 압축하기 - String  (0) 2022.01.15
숫자만 출력 - String  (0) 2022.01.15
유효한 팰린드롬 - String  (0) 2022.01.15
회기 문자열 - String  (0) 2022.01.15