๊ด€๋ฆฌ ๋ฉ”๋‰ด

Outputor

ํŒฐ๋ฆฐ๋“œ๋กฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (๋ฌธ์ž์—ด ํƒ์ƒ‰) - replaceAll ์ฒ˜๋Ÿผ replace ์‚ฌ์šฉํ•˜๊ธฐ, split์œผ๋กœ ๋ฌธ์ž์—ด ๋’ค์ง‘๋Š” ๋ฐฉ๋ฒ• ๋ณธ๋ฌธ

๐Ÿ’ป ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๐Ÿ”ป/๐Ÿฆ Algorithm-Note

ํŒฐ๋ฆฐ๋“œ๋กฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (๋ฌธ์ž์—ด ํƒ์ƒ‰) - replaceAll ์ฒ˜๋Ÿผ replace ์‚ฌ์šฉํ•˜๊ธฐ, split์œผ๋กœ ๋ฌธ์ž์—ด ๋’ค์ง‘๋Š” ๋ฐฉ๋ฒ•

output7 2022. 3. 7. 15:15

ํŒฐ๋ฆฐ๋“œ๋กฌ


์•ž์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๋’ค์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

๋ฌธ์ œ : ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์ด ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ฉด "YES"๋ฅผ ์•„๋‹ˆ๋ฉด "NO"๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค. (์•ŒํŒŒ๋ฒณ ์ด์™ธ์˜ ๋ฌธ์ž๋“ค์„ ๋ฌด์‹œํ•˜๊ณ , ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.)

 

ํ•ด์„ค

1. ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ฌธ์ž ๋˜๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
2. ์•ŒํŒŒ๋ฒณ ์ด์™ธ์˜ ๋ฌธ์ž๋“ค์„ ๋ฌด์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ŒํŒŒ๋ฒณ ์™ธ์˜ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
3. ์•ŒํŒŒ๋ฒณ๋งŒ ๋‚จ์€ ๋ฌธ์ž์—ด๊ณผ ๋’ค์ง‘์€ ๋ฌธ์ž์—ด์ด ๊ฐ™์œผ๋ฉด "YES"๋ฅผ ๋‹ค๋ฅด๋ฉด "NO"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

INSIGHT

1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” replaceAll์ด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— replace๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ /g๋กœ ๋™์ผํ•œ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•จ

2. ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ๋น„๊ตํ•  ๋•Œ for๋ฌธ์„ ๋ฐ˜๋งŒ ๋Œ๋ ค์„œ ์ฒ˜์Œ๊ณผ ๋์„ ๋น„๊ตํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ๋ฌธ์ž๊ฐ€ ์žˆ์œผ๋ฉด NO๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜์Œ์— ํ’€์—ˆ๋Š”๋ฐ, ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด ์ž์ฒด๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ‘ธ๋‹ˆ๊นŒ ๋” ๊ฐ„๋‹จํ•จ

 

 

์ •๊ทœ์‹

[ ] ๋ฌธ์ž ํด๋ž˜์Šค
 [ ] ์‚ฌ์ด์˜ ๋ฌธ์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๊ณ  - ๊ธฐํ˜ธ๋กœ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. [A-Z]์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด ๋Œ€๋ฌธ์ž A๋ถ€ํ„ฐ Z๊นŒ์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

[^] ๋ถ€์ •
 ๋ฌธ์ž ํด๋ž˜์Šค ์•ˆ์˜ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋ฅผ ์„ ํƒํ•œ๋‹ค. [^A-Z]์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

* 0ํšŒ ์ด์ƒ
 0๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ๋‹ค. "A*B"๋Š” A๊ฐ€ 0๊ฐœ ์ด์ƒ์ผ๋•Œ๋ฅผ ๋‹ค  ํฌํ•จํ•œ๋‹ค.

g ๊ธ€๋กœ๋ฒŒ ๊ฒ€์‚ฌ
 ์ „์—ญ ๊ฒ€์‚ฌ๋ฅผ ํ•œ๋‹ค.

 

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ replaceAll์ฒ˜๋Ÿผ replace ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

console.log(p.replace('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the dog reacted, was it really lazy?"

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์ฒซ๋ฒˆ์งธ 'dog๋งŒ 'monkey'๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

๊ทธ๋Ÿด๋•Œ ์ •๊ทœ์‹ g๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด replace๋ฅผ replaceAll์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

const p ='The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

console.log(p.replace(/dog/g, 'monkey'));
// expected output: The quick brown fox jumps over the lazy monkey. If the monkey reacted, was it really lazy?

 

 

split์œผ๋กœ ๋ฌธ์ž์—ด ๋’ค์ง‘๋Š” ๋ฐฉ๋ฒ•

1. ๋ฌธ์ž์—ด์„ split('') ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฌธ์ž ํ•˜๋‚˜ ํ•˜๋‚˜ ๋ฐฐ์—ด๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.

2. ๋ณ€๊ฒฝ๋œ ๋ฐฐ์—ด์„ reverseํ•ด์ฃผ๋ฉด ๋ฐฐ์—ด ์ˆœ์„œ๊ฐ€ ๋’ค๋ฐ”๋€๋‹ค.

3. ๋’ค๋ฐ”๋‚€ ๋ฐฐ์—ด์„ join('') ํ•˜๋ฉด ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค.

 

 

CODE

      function solution(s) {
        let answer = 'YES';
        s = s.toUpperCase().replace(/[^A-Z]/g, '');
        if (s.split('').reverse().join('') !== s) return 'NO';
        return answer;
      }

      let str = 'found7, time: study; Yduts; emit, 7Dnuof';
      console.log(solution(str));