[프로그래머스] JadenCase 문자열 만들기
[프로그래머스] JadenCase 문자열 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12951
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해결전략
문자열
코드
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
bool flag = true;
for (int i = 0; i < s.size(); i++)
{
if (s[i] == ' ') //빈 공객 확인
{
answer.push_back(s[i]);
flag = true;//다음은 첫 문자
}
else if (flag == true)//첫 문자인 경우
{
if ('a' <= s[i] && s[i] <= 'z')
answer.push_back(s[i] - 'a' + 'A');//소문자일 경우 대문자 넣기
else
answer.push_back(s[i]);
flag = false;
}
else{
if ('A' <= s[i] && s[i] <= 'Z')
answer.push_back(s[i] - 'A' + 'a');
else
answer.push_back(s[i]);
flag = false;
}
}
return answer;
}
주의할 점
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
bool flag = true;
for (int i = 0; i < s.size(); i++)
{
if (flag == true)//첫 문자인 경우
{
if ('a' <= s[i] && s[i] <= 'z')
answer.push_back(s[i] - 'a' + 'A');//소문자일 경우 대문자 넣기
else
answer.push_back(s[i]);
flag = false;
}
else if (s[i] == ' ') //빈 공객 확인
{
answer.push_back(s[i]);
flag = true;//다음은 첫 문자
}
else{
if ('A' <= s[i] && s[i] <= 'Z')
answer.push_back(s[i] - 'A' + 'a');
else
answer.push_back(s[i]);
flag = false;
}
}
return answer;
}
위와 같이
if (flag == true) 를
else if (s[i] == ' ') 보다 먼저 체크하면 문제가 된다.
if (s[i] == ' ') //빈 공객 확인
else if (flag == true)//첫 문자인 경우
위의 순서로 실행해야 한다.
빈칸을 먼저 체크해야 예외 상황을 방지할 수 있다. 조심하자.
'⭐ 코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 C++] 숫자의 표현 (0) | 2023.08.12 |
---|---|
[프로그래머스] 이진 변환 반복하기 (0) | 2023.07.30 |
[프로그래머스] 최솟값 만들기 (0) | 2023.07.29 |
[프로그래머스] 최댓값과 최솟값 (0) | 2023.07.23 |
[프로그래머스] 정수 삼각형 (0) | 2023.07.20 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스] 이진 변환 반복하기
[프로그래머스] 이진 변환 반복하기
2023.07.30 -
[프로그래머스] 최솟값 만들기
[프로그래머스] 최솟값 만들기
2023.07.29 -
[프로그래머스] 최댓값과 최솟값
[프로그래머스] 최댓값과 최솟값
2023.07.23 -
[프로그래머스] 정수 삼각형
[프로그래머스] 정수 삼각형
2023.07.20