๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ™์€ ๊ธ€์ž

by ์ฝ”ํŒŒ์นด 2022. 12. 8.
728x90

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ™์€ ๊ธ€์ž

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต > ์—ฐ์Šต๋ฌธ์ œ > ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ™์€ ๊ธ€์ž


๐Ÿ’ฉ ๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, s์˜ ๊ฐ ์œ„์น˜๋งˆ๋‹ค ์ž์‹ ๋ณด๋‹ค ์•ž์— ๋‚˜์™”์œผ๋ฉด์„œ, ์ž์‹ ๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณณ์— ์žˆ๋Š” ๊ฐ™์€ ๊ธ€์ž๊ฐ€ ์–ด๋”” ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, s="banana"๋ผ๊ณ  ํ•  ๋•Œ, ๊ฐ ๊ธ€์ž๋“ค์„ ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฝ์–ด ๋‚˜๊ฐ€๋ฉด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ”๏ธ b๋Š” ์ฒ˜์Œ ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ์— ์ž์‹ ์˜ ์•ž์— ๊ฐ™์€ ๊ธ€์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” -1๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
โœ”๏ธ a๋Š” ์ฒ˜์Œ ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ์— ์ž์‹ ์˜ ์•ž์— ๊ฐ™์€ ๊ธ€์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” -1๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
โœ”๏ธ n์€ ์ฒ˜์Œ ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ์— ์ž์‹ ์˜ ์•ž์— ๊ฐ™์€ ๊ธ€์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” -1๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
โœ”๏ธ a๋Š” ์ž์‹ ๋ณด๋‹ค ๋‘ ์นธ ์•ž์— a๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” 2๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
โœ”๏ธ n๋„ ์ž์‹ ๋ณด๋‹ค ๋‘ ์นธ ์•ž์— n์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” 2๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
โœ”๏ธ a๋Š” ์ž์‹ ๋ณด๋‹ค ๋‘ ์นธ, ๋„ค ์นธ ์•ž์— a๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ค‘ ๊ฐ€๊นŒ์šด ๊ฒƒ์€ ๋‘ ์นธ ์•ž์ด๊ณ , ์ด๋Š” 2๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ์€ [-1, -1, -1, 2, 2, 2]๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
๋ฌธ์ž์—ด s์ด ์ฃผ์–ด์งˆ ๋•Œ, ์œ„์™€ ๊ฐ™์ด ์ •์˜๋œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜ solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ’ฉ ์ œํ•œ ์กฐ๊ฑด

โ˜๏ธ 1 โ‰ค s์˜ ๊ธธ์ด โ‰ค 10,000
โœŒ s์€ ์˜์–ด ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ฉ ๋ฌธ์ œ ํ’€์ด

function solution(s) {
    let answer = ""; // s์˜ ์•ŒํŒŒ๋ฒณ๋“ค์„ ํ•œ ๊ธ€์ž์”ฉ ๋„ฃ์–ด์ค„ ๋นˆ ๋ฌธ์ž์—ด
    let answer2 = [];
    for(i=0; i<s.length; i++){
        if(answer.includes(s[i])){ // ์ค‘๋ณต๋œ ์•ŒํŒŒ๋ฒณ์„ ๋งˆ์ฃผ์น  ๊ฒฝ์šฐ
            answer2.push(i - answer.lastIndexOf(s[i])) // ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ค‘๋ณต๋œ ์•ŒํŒŒ๋ฒณ๊ณผ์˜ ๊ฑฐ๋ฆฌ
            answer += s[i]
        } else { // ์ค‘๋ณต๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ
            answer += (s[i]); answer2.push(-1)
        }
    }
    return answer2;
}

์—ฌ๋Ÿฌ๋ถ„!! ์ œ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ 100๋ช…๋„ ์•ˆ ๋์„ ๋•Œ ํ’€์—ˆ์–ด์š”!! ๊ต‰์žฅํ•˜์ฃ ?? ์‚ฌ์‹ค ์™„๋ฃŒํ•œ ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ ๋„์ „ํ•œ ์‚ฌ๋žŒ ์ˆ˜ 100๋ช…์œผ๋กœ ๋ณด๊ณ , ์ •๋‹ต๋ฅ ์ด 0%๊ธธ๋ž˜ 1๋น ์ธ ์ค„ ์•Œ๊ณ  ์‹ ๋‚˜์„œ ์ง‘์ค‘ํ–ˆ๋Š”๋ฐ 100๋ช…์ด ์ด๋ฏธ ์™„๋ฃŒํ•œ ์‚ฌ๋žŒ์ด์—ˆ๋”๊ตฐ์š”... ์ •๋‹ต๋ฅ ์ด ๋‚ฎ์€ ๋”ฐ๋ˆ๋”ฐ๋ˆํ•œ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ์ ์ˆ˜ ๋”ฐ๊ธฐ์— ์ข‹๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์–ด์„œ ์—ด์‹ฌํžˆ ํ’€์–ด๋ดค๋Š”๋ฐ ๊ทธ๊ฒƒ๋„ ์•„๋‹ˆ์—ˆ์–ด์š”. ๊ทธ๋ƒฅ ์†์€ ๊ธฐ๋ถ„์ด๋„ค์š”. ์•„๋ฌดํŠผ ๋˜๊ฒŒ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ’ฉ ๋‹ค๋ฅธ ํ’€์ด

function solution(s) {
    var answer = Array(s.length).fill(-1);
    for (let i = s.length - 1; i > 0; i--){
        for (let j = i - 1; j >= 0; j--){
            if (s[i] == s[j]){  
                answer[i] = i-j;
                break;
            }
        }
    }
    return answer;
}

์ฝ”๋“œ ๋ชจ์–‘์ƒˆ๊ฐ€ ๊น”๋”ํ•ด ๋ณด์—ฌ์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. -1์ด๋ผ๋Š” ์›์†Œ๋กœ ๊ฐ€๋“ ์ฐฌ ๋ฐฐ์—ด์„ ๋จผ์ € ๋งŒ๋“ค๊ณ , s ๋ฌธ์ž์—ด์„ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ƒ…์ƒ…์ด ํŒŒํ—ค์ณค๋„ค์š”. ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ๋งˆ์ฃผ์น˜๋ฉด -1 ์›์†Œ๋ฅผ ์ธ๋ฑ์Šค์˜ ์ฐจ๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์˜๋„ค์š”.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž‘์ž‘ ํ•˜๊ณ  ํฌํด ํ•ด์•ผ ํ•˜๋Š”๋ฐ... ์—ํœด

728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘