가장 짧은 문자거리

bkboy·2022년 5월 17일
0

문제

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

제한사항

입출력 예

풀이

function solution(s, t) {
  let answer = [];
  let count = Number.MAX_SAFE_INTEGER;
  for (let x of s) {
    if (x === t) {
      count = 0;
      answer.push(count);
    } else {
      answer.push(++count);
    }
  }
  count = Number.MAX_SAFE_INTEGER;
  for (let i = s.length - 1; i >= 0; i--) {
    if (s[i] === t) {
      count = 0;
    } else {
      answer[i] = Math.min(answer[i], ++count);
    }
  }
  return answer;
}

let str = 'teachermode';
console.log(solution(str, 'e'));
  • 두번 반복해주는데 왼쪽에서 한번 오른쪽에서 한번 반복해준다.
  • 왼쪽에서 반복할 때 해당 문자가 아니면 count++ 하면서 answer배열에 push해주고
    오른쪽에서 반복할 때도 해당 문자가 아니면 count++하면서 push하는데 이때 원래 배열에 있던 값과 비교해 작은 값을 넣으면 된다.
profile
음악하는 개발자

0개의 댓글