ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

ํ•œ ๊ฐœ์˜ ๋ฌธ์ž์—ด s์™€ ๋ฌธ์ž t๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๋ฌธ์ž์—ด s์˜ ๊ฐ ๋ฌธ์ž๊ฐ€ ๋ฌธ์ž t์™€ ๋–จ์–ด์ง„ ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

๋ฌธ์ œํ’€์ด

๋ฌธ์ž์—ด ๋‚ด์—์„œ ๋ฌธ์ž ๊ฐ„์— ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‘ ๋ฌธ์ž์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ฐ€์‚ฐํ•ด์ค€๋‹ค.

 

๋ฌธ์ž์—ด s ๋‚ด์—์„œ ๋ฌธ์ž t๋Š” ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ t์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹จ์ˆœํžˆ String.indexOf(element)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

indexOf()๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋งŒ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ž์—ด s ๋‚ด์—์„œ ๊ฐ€์žฅ ์ฒ˜์Œ ๊ฒ€์ƒ‰ ๋œ ๋ฌธ์ž t๋งŒ์˜ ์ธ๋ฑ์Šค ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด indexOf() ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•  ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•˜๋Š”๋ฐ, ์ด๋•Œ ๊ฒ€์ƒ‰์ด ๋๋‚œ ๋ฌธ์ž t๊ฐ€ ๋๋‚œ ๋‹ค์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ฌธ์ž t๋ฅผ ๊ฒ€์‚ฌํ•ด์ค˜์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์‹ ์˜ ์ธ๋ฑ์Šค ๊ฐ’์— 1์„ ๊ฐ€์‚ฐํ•ด์ค€๋‹ค. 

 

์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ค‘์ฒฉ for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฌธ์ž์™€ ์•ž์„œ ๊ตฌํ•œ ๊ฐ ๋ฌธ์ž t์˜ ์ธ๋ฑ์Šค ๊ฐ’๋“ค๊ณผ ๊ฐ€์‚ฐํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง„ ๊ฐ’๋งŒ์„ ์ •๋‹ต์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ด๋•Œ ๊ฑฐ๋ฆฌ๋Š” ์Œ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Math.abs()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์ „์— ๋ชจ๋“  ๊ฑฐ๋ฆฌ์˜ ๊ฐ’์„ ์–‘์ˆ˜๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

 

 

์ฝ”๋“œ

function solution(str, keyWord) {
  let answer = [];
  let target = 0;
  let posE = [];
  let minDistance = Number.MAX_SAFE_INTEGER;

  for(let x of str) {
    if (x === keyWord) {
      posE.push(str.indexOf(keyWord, target));
      target = str.indexOf(keyWord, target) + 1;
    }
  }

  for(let i = 0; i < str.length; i++) {
    minDistance = Number.MAX_SAFE_INTEGER;
    for(let j = 0; j < posE.length; j++) {
      if(minDistance > Math.abs(posE[j] - i)) {
        minDistance = Math.abs(posE[j] - i);
      }
    }
    answer.push(minDistance);
  }

  return answer;
}

console.log(solution("teachermode", "e"));

 

๋ฌธ์ œํ’€์ด2

๋ฌธ์ž์—ด s์˜ ๊ธธ์ด๋ณด๋‹ค ํฐ ๊ฐ’์„ ๋ณ€์ˆ˜ p์— ํ• ๋‹นํ•ด์ค€๋‹ค.

๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์ผ ๋•Œ p์˜ ๊ฐ’์„ ๊ฐ€์‚ฐํ•ด์ฃผ๊ณ  ๊ทธ ๊ฐ’์„ ํ• ๋‹นํ•ด์ค€๋‹ค.

 

์ดํ›„ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ˆœํšŒํ•  ๋•Œ ๋ฌธ์ž t์— ํ•ด๋‹นํ•  ๊ฒฝ์šฐ์— p์˜ ๊ฐ’์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ์–ด ํ•ด๋‹น ๊ฐ’์ด ๊ธฐ์ค€์ ์œผ๋กœ์„œ ์ ์šฉ๋˜๋„๋ก ํ•œ๋‹ค.

๋ฌธ์ž t์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ ๋‹ค์Œ ์ˆœ๋ฒˆ์—์„œ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ์—ˆ๋˜ p์˜ ๊ฐ’์ด ๊ฐ€์‚ฐ๋˜์–ด 1์ด ๋œ๋‹ค. ๊ทธ ๋‹ค์Œ์€ ๋งˆ์ฐฌ๊ฐ€์ง€์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋กœ 3์ด ๋œ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๊ธฐ์ค€์  ๋ฌธ์ž t์— ๋Œ€ํ•ด ์™ผ์ชฝ์œผ๋กœ๋ถ€ํ„ฐ ์–ผ๋งˆ๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ตœ์†Œ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์ˆœํšŒํ•˜์˜€์„๋•Œ ๊ธฐ์ค€์  ๋ฌธ์ž t์— ์˜ค๋ฅธ์ชฝ์œผ๋กœ๋ถ€ํ„ฐ ์–ผ๋งˆ๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€ ๋˜ํ•œ ๊ณ„์‚ฐํ•ด์ค˜์•ผ ํ•œ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ ๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์—์„œ๋ถ€ํ„ฐ ์ด์ „๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ ๋ฐฉ์‹์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋ฉฐ ๋‘ ๊ฐ’์„ ๋น„๊ตํ•ด ๊ฐ’์ด ์ ์€ ๊ฐ’์„ ์ •๋‹ต์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

์ฝ”๋“œ

function solution(s, t){
                let answer=[];
                let p=1000;
                for(let x of s){
                    if(x===t){
                        p=0;
                        answer.push(p);
                    }
                    else{
                        p++;
                        answer.push(p);
                    }
                }
                p=1000;
                for(let i=s.length-1; i>=0; i--){
                    if(s[i]===t) p=0;
                    else{
                        p++;
                        answer[i]=Math.min(answer[i], p);
                    }
                }
                return answer;
            }
            
            let str="teachermode";
            console.log(solution(str, 'e'));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ