어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾼 결과를 리턴하는 문제이다.
문자열 s와 거리 n을 입력받아, s를 n만큼 민 암호문을 만들어야 한다.
문제 자체는 어렵지 않았는데... 대문자->소문자, 소문자->대문자로 변환하는 과정이 어려웠다..
#include <string>
#include <vector>
using namespace std;
string solution(string s, int n) {
string answer = "";
string temp = "";
for(int i =0; i<s.size(); i++)
{
if(s[i] == ' ')
{
answer += " ";
}
else
{
temp = s[i];
for(int j = 1; j <= n; j++)
{
// 나머지 연산을 사용해서 대문자->소문자, 소문자->대문자 변환
if(('A' <= s[i]) && (s[i] <= 'Z'))
{
temp = (s[i]-'A'+j)%26 +'A';
}
else
{
temp = (s[i]-'a'+j)%26+ 'a';
}
}
answer += temp;
}
}
return answer;
}
'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 평균 구하기 (0) | 2021.01.08 |
---|---|
[프로그래머스] 짝수와 홀수 (0) | 2021.01.05 |
[프로그래머스] 이상한 암호 만들기 (0) | 2021.01.03 |
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2021.01.03 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2020.12.31 |