[ 문제 ]
입력받은 문자열에 있는 두 칸의 공백을 한 칸의 공백으로 바꾼 후, 그 문자열을 반환하는 문제이다.
입출력 예시를 보면, 'string with double spaces'에서 중간의 공백이 전부 두 칸이다.
이걸 한 칸씩 변경한 'string with double spaces'값을 반환하는 것이다.
[ 풀이 ]
나의 로직은 다음과 같다.
1/ split함수를 이용하여 구분자를 ' ' 즉, 두 칸의 공백으로 하여 배열로 만든다.
2/ 그 배열을 다시 ' ' 즉, 한 칸의 공백으로 연결하여 문자열을 만든다.
예를 들어보면, 아래와 같다.
let str = 'javascript is good'; //javascript와 is 사이에 두 개의 공백이 들어가있다.
let arr = str.split(' '); //두개의 공백으로 split를 한다. arr=['javascript', 'is good']
arr.join(' '); //한 개의 공백으로 연결시킨다 --> 'javascript is good'
위 로직대로 함수를 만들어보았다.
function convertDoubleSpaceToSingle(str) {
let arr = str.split(' '); //split함수를 이용하여 두개의 공백으로 나눈 후, 배열로 만든다.
let result = arr.join(' '); //join함수를 이용하여 한 개의 공백으로 연결시켜 문자열로 만든다.
return result; // 그 값을 반환한다. 그냥 return arr.join(' ')로 하면 더 깔끔하다!
}
[ 레퍼런스 ]
레퍼런스는 반복문을 이용하여 직전의 문자열과 현재의 문자열이 둘다 공백을 경우(연속 두개의 공백)는 무시하고 나머지 경우는 문자열을 순서대로 이어붙이는 로직이다.
'자료구조알고리즘 > 코드스테이츠 Coplit' 카테고리의 다른 글
10_insertDash (0) | 2022.02.18 |
---|---|
09_ABCheck (0) | 2022.02.16 |
07_convertListToObject (0) | 2022.02.12 |
06_letterCapitalize (0) | 2022.02.09 |
05_firstReverse (0) | 2022.02.09 |