๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“‚ Base/์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฌธ์ž์—ด์— ๋“ฑ์žฅํ•˜๋Š” ๋‘ ์นธ์˜ ๊ณต๋ฐฑ์„ ๋ชจ๋‘ ํ•œ ์นธ์˜ ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๊ธฐ

by Dev. Ella 2023. 3. 23.

๐Ÿ“œ ๋ฌธ์ œ

๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ํ•ด๋‹น ๋ฌธ์ž์—ด์— ๋“ฑ์žฅํ•˜๋Š” ๋‘ ์นธ์˜ ๊ณต๋ฐฑ์„ ๋ชจ๋‘ ํ•œ ์นธ์˜ ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

- ๋‘ ์นธ์„ ์ดˆ๊ณผํ•˜๋Š” ๊ณต๋ฐฑ์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

โœ๐Ÿป ๋‚ด ํ’€์ด : ์ง์ „ ๊ณต๋ฐฑ ์—ฌ๋ถ€ ํŒ๋‹จํ•˜๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ

function convertDoubleSpaceToSingle(str) {
  // ๋นˆ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์€ ๊ฒฝ์šฐ, ๋นˆ ๋ฌธ์ž์—ด ๋ฆฌํ„ดํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ’ ์„ ์–ธ
  let result = '';
  // ๊ฐ ๋ฌธ์ž ์ง์ „ ๊ณต๋ฐฑ ์—ฌ๋ถ€ ํŒ๋‹จํ•˜๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ
  let beforeSpace = '';
  // for loop๋กœ ํ•ด๋‹น ๋ฌธ์ž์—ด ๊ธธ์ด๋งŒํผ ์ˆœํšŒํ•ด์„œ
  for (let i = 0; i < str.length; i++) {
    // ์ง์ „ ๋ฌธ์ž๊ฐ€ ๊ณต๋ฐฑ์ด๊ณ , ํ˜„์žฌ ๋ฌธ์ž๋„ ๊ณต๋ฐฑ์ธ ๊ฒฝ์šฐ (์ฆ‰, ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ๋‘ ๋ฒˆ์งธ ๊ณต๋ฐฑ์ธ ๊ฒฝ์šฐ)๋งŒ ๋ฌด์‹œํ•˜๊ณ 
    if (beforeSpace !== ' ' || str[i] !== ' ') {
      // result์— ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
      result = result + str[i];
    }
    beforeSpace = str[i];
  }
  // ์ตœ์ข… ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.
  return result;
}

 

โœ๐Ÿป ๋˜ ๋‹ค๋ฅธ ํ’€์ด: if๋ฌธ์—์„œ i๋ฒˆ์งธ, i+1๋ฒˆ์งธ ๊ณต๋ฐฑ ํŒ๋‹จ

function convertDoubleSpaceToSingle(str) {
  // ๋นˆ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์€ ๊ฒฝ์šฐ, ๋นˆ ๋ฌธ์ž์—ด ๋ฆฌํ„ดํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ’ ์„ ์–ธ
  let result = '';
  // for loop๋กœ ํ•ด๋‹น ๋ฌธ์ž์—ด ๊ธธ์ด๋งŒํผ ์ˆœํšŒํ•ด์„œ
  for (let i = 0; i < str.length; i++) {
    // ํ˜„์žฌ ๋ฌธ์ž์™€ ๋‹ค์Œ ๋ฌธ์ž ๋ชจ๋‘ ๊ณต๋ฐฑ์ธ ๊ฒฝ์šฐ (์ฆ‰, ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ๋‘ ๋ฒˆ์งธ ๊ณต๋ฐฑ์ธ ๊ฒฝ์šฐ)๋งŒ ๋ฌด์‹œํ•˜๊ณ 
    if (str[i] !== ' ' || str[i+1] !== ' ') {
      // result์— ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
      result = result + str[i];
    }
  }
  // ์ตœ์ข… ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.
  return result;
}

 

โœ๐Ÿป ๋˜๋˜ ๋‹ค๋ฅธ ํ’€์ด: split, join ๋ฉ”์†Œ๋“œ ํ™œ์šฉ

function convertDoubleSpaceToSingle(str) {
  // split()๋กœ ๋ฌธ์ž์—ด์„ ๋‘ ๊ฐœ์˜ ๊ณต๋ฐฑ์œผ๋กœ ์ชผ๊ฐœ์ฃผ๊ณ , join()๋กœ ๋‹ค์‹œ ๊ณต๋ฐฑ ํ•˜๋‚˜๋งŒ ๋„ฃ์–ด์ค€ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.
  return str.split('  ').join(' ');
}

 

๐Ÿ’ก ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๊ฐœ๋…

(1) ๋ฐ˜๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ ํ™œ์šฉ

(2) split, join ๋ฉ”์†Œ๋“œ ์†์„ฑ ํŒŒ์•… ๋ฐ ํ™œ์šฉ

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๋ฐฐ์šด ์ 

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ํŠน๋ณ„ํžˆ ์–ด๋ ต๊ฑฐ๋‚˜ ๋ชจ๋ฅด๋Š” ๊ฐœ๋…์€ ์—†์—ˆ์œผ๋‚˜, for๋ฌธ๊ณผ if๋ฌธ์„ ์“ฐ์ง€ ์•Š์•„๋„ ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋‹จ ํ•œ ์ค„๋กœ๋„ ๋๋‚  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์•ฝ๊ฐ„์˜ ํ—ˆํƒˆํ•จ(?)์ด ๋“ค์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ˜๋ณต๋ฌธ ์กฐ๊ฑด๋ฌธ์ด ๋– ์˜ค๋ฅธ๊ฑด ๋งž์•˜์„ ๊ฑฐ๋‹ค. ์‚ฌ์‹ค ์–ด๋–ค ์ฝ”๋“œ๊ฐ€ ์ข‹์€ ์ฝ”๋“œ์ธ์ง€๋Š” ์•„์ง ๊ฐ์ด ์—†์ง€๋งŒ, ์ง€๊ธˆ์€ ์ด๋ ‡๊ฒŒ ๋‹ค์–‘ํ•œ ์ฝ”๋“œ๋“ค์„ ์ ‘ํ•˜๋Š” ๊ฒƒ์„ ์šฐ์„ ์œผ๋กœ ํ•ด๋ณด์ž. 

๋Œ“๊ธ€