인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김도현님의 프로필 이미지
김도현

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

4. 문자거리

이렇게 풀이를 해도 반례가 없을까요?

작성

·

155

0

function solution(s, t){
let answer=[];
let dist=1000;
let temp = [];
for(let i in s) {
if(s[i] === t) temp.push(Number(i));
}
for(let i in s) {
for(let t of temp) {
  dist = Math.min(dist, Math.abs(t - Number(i)));
  }
answer.distush(dist);
dist = 1000;
}
return answer;
}
           
let str="teachermode";
console.log(solution(str, 'e'));

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

answer.distush(dist);

위에 코드가 저는 에러나는데 뭔가요?

 

 

김도현님의 프로필 이미지
김도현
질문자

죄송합니다. 오타였습니다. push입니다.

풀이 방법: 

1. 먼저 문자 t의 값의 인덱스를 temp배열에 저장한다. 

2. t와 각 문자와의 거리 절대값을 비교하여 최소값을 넣어준다.

function solution(s, t){
                let answer=[];
                let dist=1000;
                let temp = [];
                for(let i in s) {
                    if(s[i] === t) temp.push(Number(i));
                }
                for(let i in s) {
                  for(let t of temp) {
                    dist = Math.min(dist, Math.abs(t - Number(i)));
                  }
                  answer.push(dist);
                  dist = 1000;
                }

                return answer;
          }
김도현님의 프로필 이미지
김도현

작성한 질문수

질문하기