
문제 자체가 굉장히 난해하게 보인다.

다만 입출력 예를 확인하게 될때 몇가지를 확인해 볼 수 있다.
1. 처음나온 숫자는 무조건 -1을 return 하게된다.
2. 다만 두번 이상 나온 string 마지막 중복값의 인덱스 - 처음 나왔던 stiring의 index 값이 나온다.
ex) banana라고 가정을 했을때 처음 a는 -1를 push, 두번째 나온 a의 Index는 4가나오며 마지막 a의 index는 6이나온다.
function solution(s) {
let answerArr = [];
let spliceS = s;
s = s.split(''); = 해당 코드는 주어진 s의 값을 split으로 하나하나씩 쪼개기 위함이다.
let arr = []; = 프로그래머스에 기본 내장된 코드이다. 다만 배열을 써야하니 없다면 써두도록 하자.
for (let i = 0; i < s.length; i++){
let answer = -1
for (let y = 0; y < i; y++){
if(s[i] == s[y]){
answer = i - splicesS.substr(0, i).lastIndexOf(s[y]);
}
}
return answerArr
} 오늘 새롭게 알게된(?) 익숙치 않은 method인 lastIndexOf(), substr이다.문제를 푼 순서에 대해서 수도코딩을 하게끔 항상 염두를 하고 있어 순차적으로 나열 해보자면.
설명을 내가 적어도 아직까지 헷갈리는 부분이 있기에 substr과 lastIndexOf는 추후에 다시 글을 게재할 예정이다.
항상 코딩을 하거나 알고리즘을 짰을때 이런식으로 만들어보면 괜찮을 것 같은데 에서 실행하는 코드 작성력(?)이 떨어진다고 생각한다. 많은 method 사용법이나 코드를 많이 작성하거나 적어보는 연습이 필요하다고 여겨진다.
vscode에서 예제를 적어보는게 많은 도움이 된다고 하니 연습을 통해서 알고리즘 문제에서 문법 및 코드작성 방법을 틀리는 우를 범하지 않도록 신경쓰도록하자.