inflearn logo
강의

Course

Instructor

Introduction to Javascript Algorithm Problem Solving (Coding Test Preparation)

4. Text distance

혼자 푼 것 코드리뷰 부탁드립니다!

241

tmdwhd319

8 asked

0

// 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리

function solution(str = "", char = "") {
  let answer = [];
  let count = 0;

  for (let i = 0; i < str.length; i++) {
    if (str[i] === char) {
      count = 0;
      answer.push(count);
    } else {
      count++;
      answer.push(count);
    }
  }

  count = 1;
  for (let i = answer.length - 1; i >= 0; i--) {
    if (i > 0 && answer[i - 1] > count) {
      answer[i - 1] = count;
      count++;
    } else {
      count = 1;
    }
  }

  return answer;
}

console.log(solution("teachermode", "e")); // 1 0 1 2 1 0 1 2 2 1 0

혹시나 반례나 수정할 곳 있으면 조언 부탁드려요!

javascript 코딩-테스트

Answer 2

0

gusn9719

일단 코드가 다른 문자열과 단어에서는 정상 작동 안 할 수도 있습니다.

 

예를 들어 "aaabaaa" 에서 b 와의 거리를 계산하면

첫 번째 for 문에서 1230123이 될것이고 이제
두 번째 for문을 돌면 1,2,1,0,1,1,3 이 나와요

지금 이 초기 문자열에서만 답이 나오고 다른 문자를 넣으면 정상 작동을 안 하게 됩니다.

count른 큰 값을 주는 거로만 바꾸고 두 번째 for문의 if 조건식에서 answer[i-1]
이 아니라 그냥 answer[i]로 하셔야 할 거 같아요

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

질문자님의 코드는 문자열에서 특정 문자까지의 최소 거리를 계산하여 배열에 저장하는 로직으로 구성되어 있습니다. 유사한 문제 해결법을 다룬 기존 질문들을 검토한 결과, 여러 풀이 방법 중 하나로 질문자님의 접근 방식이 포함되어 있는 것을 확인했습니다.

향상된 알고리즘 설계 및 코드 최적화를 위한 참조로, 다음 리소스를 적극 권장합니다:

이들 자료는 문제 해결 과정에서 고려해야 할 핵심 요소들, 특히 시간 복잡도와 알고리즘의 효율성에 대한 중요한 인사이트를 제공합니다. 질문자님의 코드는 기본적으로 올바른 결과를 출력하는 것으로 보이나, 알고리즘의 효율성 측면에서 검토하고 접근 방식을 최적화할 수 있는 방안에 대해 고민해보시는 것이 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

continue를 사용하는 이유

0

76

2

정렬 가능 여부 판단하기

0

63

2

알고리즘 학습법 관련해서 질문드립니다.

0

82

1

코드 리뷰 부탁드립니다!

0

88

1

indexOf를 사용해서 풀어보았습니다 !!

0

67

1

저는 이런식으로 구현 해보았습니다 !!

0

63

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

97

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

61

1

영상 보기 전에 직접 풀어봤습니다.

0

71

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

133

2

정규표현식으로 처리해도 상관없나요 ?

0

119

2

3칸씩 건너뛸 수 있을 경우

0

124

2

강의에 대해 질문있습니다.

0

133

2

Object와 Set을 이용해 풀어봤습니다.

0

116

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

144

2

이렇게 풀어도 괜찮을까요?

0

136

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

129

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

130

1

투포인트알고리즘으로 풀어봤습니다.

0

139

0

코드 리뷰 부탁드립니다.

0

116

1

코드 맞게 작성한 거 아닌가여??

0

143

1