상세 컨텐츠

본문 제목

알고리즘 문제풀이 - convertDoubleSpaceToSingle

Programming Language/JavaScript

by Yongari 2022. 12. 21. 22:09

본문

 

문제 설명 : 문자열을 입력받은 뒤 해당 문자열에 등장하는 두칸의 공백을 모두 한 칸의 공백으로 바꿔서 리턴하는 문제입니다. 

정규표현식으로 푸는 방법, 반복문으로 푸는 방법 2가지가 있습니다.

 

문제

문자열을 입력받아 해당 문자열에 등장하는 두 칸의 공백을 모두 한 칸의 공백으로 바꾼 문자열을 리턴해야 합니다.

입력

인자 1 : str

  • string 타입의 문자열

출력

  • string 타입의 문자열


주의 사항

  • 두 칸을 초과하는 공백은 존재하지 않는다고 가정합니다.


입출력 예시

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

풀이 코드 설명 : 모든 공백을 공백 하나로 변경한다.

function convertDoubleSpaceToSingle(str) {
  //공백을 공백 한칸으로 정규표현식을 이용해서 변환, 내 풀이
  let convertArr = str.replace(/ +/g, " ");
  return convertArr;
}

//레퍼런스 풀이
function convertDoubleSpaceToSingle(str) {
  let result = '';
  let before = '';
  for (let i = 0; i < str.length; i++) {
    // 직전의 문자가 공백이고, 현재의 문자도 공백인 경우 
    // 즉, 현재의 문자가 두 번째 공백인 경우(에만), 무시한다.
    // 그러명 '공공' > '공'으로 공백이 한칸으로 변환된다.
    if (before !== ' ' || str[i] !== ' ') {
      result = result + str[i];
    }
    before = str[i];
  }
  return result;
}

관련글 더보기