✅ LV. 2
vector
에 넣기 ➡️ ASCII
코드 연산으로 대소문자 변환vector
에 저장했던 단어 출력할 때마다 띄어쓰기 적용해주고 맨 마지막 단어 출력한 이후에는 쓸 데 없는 공백을 제거하기 위해 erase
함수로 공백 제거해줌🔗 [C++] split 함수
🔗 [C++] erase 함수
공백이 연속해서 있을 수 있기 때문에 공백도 하나의 단어처럼 vector
에 함께 넣어 출력해줘야함
string
변수에 각 문자를 저장하기vector
에 string
변수 Push공백도 검사하고 ASCII
코드도 대문자 영역에 해당하는지, 소문자 영역에 해당하는지 검사하고 검사할 조건들이 너무 많아져서 if
문, for
문 남발하는 비효율적인 코드
vector
에 Push➡️ 입력받은 문자열을 그대로 바꿔준 후 그대로 출력하는 방법이기 때문에 불필요한 메모리 낭비도 안할 수 있음
❗️ 가장 중요한 것은 대소문자 변환시, ASCII
코드 연산을 하는 것이 아니라 toupper
, tolower
함수 사용하기!
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
for(int i=0;i<s.size();i++) {
if(s[i]!=' ') s[i]=tolower(s[i]);
if(i==0 || s[i-1]==' ') {
s[i]=toupper(s[i]);
}
}
return s;
}