본문 바로가기
IT 공부/알고리즘

[JAVA] 가장 짧은 문자거리 구하기

by 해모해모 2024. 1. 15.
728x90
반응형

[입력]
첫 번째 줄에 문자열 s와 문자 t가 주어진다. (문자열과 문자는 소문자)
문자열의 길이는 100이하

[출력]
첫 번째 줄에 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력

[입력 예시]
teachermode e

[출력 예시]
1 0 1 2 1 0 1 2 2 1 0
풀이
import java.util.*;

class Main {	
	public int[] solution(String s, char t){
		int[] answer=new int[s.length()];
		int p=1000;
		for(int i=0; i<s.length(); i++){
			if(s.charAt(i)==t){
				p=0;
				answer[i]=p;
			}
			else{
				p++;
				answer[i]=p;
			}
		}
		p=1000;
		for(int i=s.length()-1; i>=0; i--){
			if(s.charAt(i)==t) p=0;
			else{
				p++;
				answer[i]=Math.min(answer[i], p);
			}
		}
		return answer;
	}

	public static void main(String[] args){
		Main T = new Main();
		Scanner sc = new Scanner(System.in);
		String str=sc.next();
		char c=sc.next().charAt(0);
		for(int x : T.solution(str, c)){
			System.out.print(x+" ");
		}
	}
}
728x90
반응형

댓글