[inflearn]자바스크립트 가장 짧은 문자의 거리

rondido·2022년 8월 24일
0

알고리즘

목록 보기
27/84
post-thumbnail

가장 짧음 문자의 거리


문제 설명

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


출력

▣ 입력설명
첫 번째 줄에 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로만 주어집니다.
문자열의 길이는 100을 넘지 않는다.

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

▣ 입력예제 1
teachermode e

▣ 출력예제 1
1 0 1 2 1 0 1 2 2 1 0


문제 풀이

//가장 짧은 문자의 거리
function solution(s, t) {
    let answer =[];
    let p =1000;
    for(let i=0; i<s.length; i++){
        if(s[i] == t){
            p = 0;
            answer.push(p);
        }else{
            p ++;
            answer.push(p);
        }
    }
    p =1000;
    for(let i=s.length -1; i>=0; i--){
        if(s[i] === t){
            p = 0;
            answer.push(p);
        }else{
            p++;
            answer[i] =Math.min(answer[i], p);
        }
    }
    return answer;
}

let str = "teachermode";
console.log(solution(str, 'e'));

처음 for문을통해 자신의 위치에서 왼쪽을 기준으로 거리 계산 하고 두번째 for문에서 뒤에서 앞으로 거리를 계산 한후 가장 짦은거리이기 때문에 첫번째 for문에서 나온 거리를 비교하여 더 짧은 거리를 answer에 푸쉬

profile
개발 옆차기

0개의 댓글