코딩 테스트/1. String(문자열)

Q1 - 10 가장 짧은 문자거리

길동이이이잉 2021. 9. 4. 16:59
728x90
반응형

10. 가장 짧은 문자거리

 

* 설명

한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램을 작성하세요.

 

* 입력

첫 번째 줄에 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로만 주어집니다.

문자열의 길이는 100을 넘지 않는다.

 

* 출력

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

 

* 예시 입력 1 

   teachermode e

* 예시 출력 1

   1 0 1 2 1 0 1 2 2 1 0

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String input1 = in.next();
		String input2 = in.next();
		
		int tmp = 1000;
		int[] output = new int[input1.length()];
		for(int i = 0; i<input1.length(); i++) {
			if(input1.charAt(i) == input2.charAt(0)) {
				tmp = 0;
				output[i] = tmp;
			}else {
				tmp++;
				output[i] = tmp;
			}
		}
		
        ////한쪽씩 돌아가면서 확인
		tmp = 1000;
		for(int i = input1.length()-1; i>-1; i--) {
			if(input1.charAt(i) == input2.charAt(0)) {
				tmp = 0;
				output[i] = tmp;
			}else {
				if(tmp < output[i]) {
					tmp++;
					output[i] = tmp;
				}
			}
		}
		for(int i = 0; i<input1.length(); i++) {
			System.out.print(output[i] + " ");	
		}
		
		in.close();
		return;

	}

}
728x90
반응형