Programming Language/JavaScript
알고리즘 문제풀이 - convertDoubleSpaceToSingle
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;
}