
๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, s์ ๊ฐ ์์น๋ง๋ค ์์ ๋ณด๋ค ์์ ๋์์ผ๋ฉด์, ์์ ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณณ์ ์๋ ๊ฐ์ ๊ธ์๊ฐ ์ด๋ ์๋์ง ์๊ณ  ์ถ์ต๋๋ค.
์๋ฅผ ๋ค์ด, s="banana"๋ผ๊ณ  ํ  ๋,  ๊ฐ ๊ธ์๋ค์ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฝ์ด ๋๊ฐ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ด ์งํํ  ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ [-1, -1, -1, 2, 2, 2]๊ฐ ๋ฉ๋๋ค.
๋ฌธ์์ด s์ด ์ฃผ์ด์ง ๋, ์์ ๊ฐ์ด ์ ์๋ ์ฐ์ฐ์ ์ํํ๋ ํจ์ solution์ ์์ฑํด์ฃผ์ธ์.
s์ ๊ธธ์ด โค 10,000s์ ์์ด ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.| s | result | 
|---|---|
| "banana" | [-1, -1, -1, 2, 2, 2] | 
| "foobar" | [-1, -1, 1, -1, -1, -1] | 
์
์ถ๋ ฅ ์ #1
์ง๋ฌธ๊ณผ ๊ฐ์ต๋๋ค.
์
์ถ๋ ฅ ์ #2
์ค๋ช
 ์๋ต
function solution(s) {
    // ์ ์ถ๋  ์ ๋ต ๋ฐฐ์ด
    const result = []
    // ์
๋ ฅ๋ ์คํ ๋ง์ ๋ชจ์๋ ๋ฐฐ์ด
    const already = []
    for(let i = 0 ; i < s.length ; i ++) {
        // ์
๋ ฅ๋ ์คํ ๋ง์ ๊ฒฝ์ฐ
        if(already.includes(s[i])) {
            // ํ์ฌ ์ธ๋ฑ์ค์์ ์
๋ ฅ๋ ํด๋น ๋ง์ง๋ง ์คํ ๋ง์ ์ธ๋ฑ์ค๋ฅผ ๋นผ ๊ฑฐ๋ฆฌ๋ฅผ ์กฐํํจ
            result.push(i - already.lastIndexOf(s[i]))
        } else {
            result.push(-1)
        }
        // ์ด๋ฒ ์คํ ๋ง์ ์
๋ ฅํจ
        already.push(s[i])
    }
    return result
}