현재 코드스테이츠 Pre-course 수강 중. 여러 방식으로 풀이 할 수 있는 과제들을 블로깅 해보려 함.

[문제]

문자열이 주어졌을때, "convertDoubleSpaceToSingle" 함수는 주어진 문자열에 있는 
띄어쓰기 두개(double spaces)를 띄어쓰기 한개(single space)로 변환한 뒤 해당 문자열을 반환합니다.)

let output = convertDoubleSpaceToSingle('string  with  double  spaces');
console.log(output); // --> "string with double spaces"

첫번째 방법

[의사코드]

  • split 메서드를 사용해 "뛰어쓰기 두개"를 사용한 지점을 기준으로 split한 배열 생성
  • join 메서드를 사용해 해당 배열을 "띄어쓰기 한개"씩 집어넣은 문자열 반환

[코드]

function convertDoubleSpaceToSingle(str) {
  let result = str.split("  ");
  result = result.join(" ");
  return result;

let output = convertDoubleSpaceToSingle('string  with  double  spaces');
console.log(output);
}
// "string with double spaces"

기존에 배웠던 메서드를 활용해서 간단히 풀었음.

두번째 방법

[의사코드]

  • for문을 사용해 연속된 두 문자열이 "띄어쓰기 두개"를 만족하는지 확인
    • 주어진 문자열의 인덱스를 훑음(n, n+1)
  • 주어진 문자열을 인덱스 별로 훑으면서, "띄어쓰기 두개"를 만족하지 않을 경우, 해당 인덱스(n)의 문자를 새로운 문자열에 넣어주고, 만족할 경우 "띄어쓰기 한개"를 넣어줌

[코드]

function convertDoubleSpaceToSingle(str) {
   let result = "";
   for(let i = 0; i < str.length ; i ++){
     if(str[i] === " " && str[i+1] === " "){
     }
     else{
       result = result + str[i];
     }
   }
   return result;
}
let output = convertDoubleSpaceToSingle('string  with  double  spaces');
console.log(output);
}
// "string with double spaces"

두번째 방식은 솔루션에 있던 방식을 활용한건데, 연속된 두 요소를 확인하여 조건을 판단하는게 인상 깊었다.