Level.2
문제
풀이
#include <string>
#include <vector>
#include <cctype> // isspace
using namespace std;
string solution(string s) {
string answer = s;
answer[0] = toupper(answer[0]);
for(int i=1; i<answer.size(); i++){
if(isspace(answer[i-1])){
answer[i] = toupper(answer[i]);
}
else {
answer[i] = tolower(answer[i]);
}
}
return answer;
}
반복문을 돌며 모든 문자열을 소문자로 변환하되, 바로 이전 문자가 공백일 경우 현재 문자를 대문자로 변환한다.
공백판단 - isspace
int isspace(int c);
- 매개변수 : 공백을 판단하고자 하는 값
- 반환값 : 공백일 경우 0, 공백이 아닐경우 0이아닌값을 반환
- 공백 판단값
- : 공백(스페이스)
- \n : 개행
- \t : 수평탭
- \v : 수직탭
- \f : 피드
- \r : 캐리지 리턴
다른 사람 풀이
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
answer += toupper(s[0]);
for (int i = 1; i < s.size(); i++)
s[i - 1] == ' ' ? answer += toupper(s[i]) : answer += tolower(s[i]);
return answer;
}
삼항연산자를 사용하여 코드가 더 간결해졌다.
https://school.programmers.co.kr/learn/courses/30/lessons/12951
https://blockdmask.tistory.com/449
'Algorithm > Programers - C++' 카테고리의 다른 글
[프로그래머스] 숫자짝꿍 - map (0) | 2023.04.15 |
---|---|
[프로그래머스] 점프와 순간 이동 - 비트연산 (0) | 2023.03.21 |
[프로그래머스] 행렬의 곱셈 (0) | 2023.03.12 |
[프로그래머스] 뒤에 있는 큰 수 찾기 - Stack (0) | 2023.02.19 |
[프로그래머스] 줄 서는 방법 - 순열(DFS), DP (0) | 2023.01.24 |