[프로그래머스] 자바스크립트 - 가장 가까운 같은 글자

멤오장·2023년 3월 2일
0

코딩테스트 연습

목록 보기
5/18

[프로그래머스] 코딩테스트 가장 가까운 같은 글자


문제 설명

문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.
예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다.


제한사항

  • s은 영어 소문자로만 이루어져 있습니다.

입출력 예

sresult
"banana"[-1, -1, -1, 2, 2, 2]
"foobar"[-1, -1, 1, -1, -1, -1]

문제 풀이

function solution(s) {
  let answer = [];
  let a = [];
  [...s].forEach((value, idx, arr) => {
    a.includes(value) ? answer.push(idx - a.lastIndexOf(value)) : answer.push(-1);
    a.push(value);
  });
  return answer;
}

🤍 lastIndexOf(검색문자열[, 검색을 시작할 위치])

  • 찾는 문자열이 마지막으로 나타나는 위치
'AXCBCX'.lastIndexOf('X');    // 5
'AXCXCX'.lastIndexOf('X', 3); // 3 ('AXCX' 마지막 X의 index)
profile
일단 적기

0개의 댓글