[프로그래머스] 이상한 문자 만들기 / C++
문제
문제를 보시려면 링크를 클릭해주세요.
풀이
공백
을 기준으로 짝/홀수 인덱스를 판단하기 때문에 idx 변수를 사용했습니다.
풀이 1은 아스키코드에서 알파벳 대/소문자의 차이가 32임을 이용해 풀었습니다.
풀이 2는 대/소문자를 변환해주는 toupper
, tolower
함수를 사용해 풀었습니다.
영문 아스키코드 값
A~Z: 65~90
a~z: 97~122
소스 코드
풀이 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <string>
using namespace std;
string solution(string s) {
int idx = 0;
for(int i=0; i<s.size(); i++){
if(s[i] == ' '){
idx=0;
continue;
}
if(idx%2){
if(s[i] <= 'Z') s[i]+=32;
}
else{
if(s[i] >= 'a') s[i]-=32;
}
idx++;
}
return s;
}
풀이 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <string>
using namespace std;
string solution(string s) {
int idx = 0;
for(int i=0; i<s.size(); i++){
if(s[i] == ' '){
idx=0;
continue;
}
if(idx%2){
s[i] = tolower(s[i]);
}
else{
s[i] = toupper(s[i]);
}
idx++;
}
return s;
}
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.