life is egg

가장 짧은 문자거리 본문

알고리즘/개인공부

가장 짧은 문자거리

삶은계란진재혁 2023. 3. 28. 16:12

지정된 문자기준~ 떨어진 인덱스 거리 구하는 문제

 

내생각

 

한번 for문 돌려서 +1씩 시키고 e만나면 0으로 초기화

 

리버스해서 for문돌리고 반복 

 

두개의 값중 비교해서 작은걸 출력

 

아 이렇게 하면 안된다 .. 지정문자로부터 거리를 적기가 힘들어짐..! 

 

아 선생님 풀이 .. 첫값을 0으로 안놓고 달성할수 없는 큰값으로 시작하면 되는구나 ..!! 

아 ! ... 두번째 리버스로 돌때 작으면 교체하는 식으로 하면 되는구나 ..  

 

import java.util.*;

class Main {
	
    public static void main(String[] args){
    	Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next;
        char c = kb.next().charAt(0);
        
        for(int x : T.solution(str,c)){
			System.out.print(x+" ");
            }
        }
        
    public String 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);
                }
        }
        retrun  answer;
        }
 }

'알고리즘 > 개인공부' 카테고리의 다른 글

암호  (0) 2023.03.29
문자열 압축  (0) 2023.03.28
숫자만 추출  (0) 2023.03.28
팰린드롬  (0) 2023.03.28
회문 문자열  (0) 2023.03.21
Comments