반응형
문제는 다음과 같습니다.
코딩테스트 연습 - 시저 암호 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 시저 암호
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀
programmers.co.kr
풀이 코드는 다음과 같습니다.
#include <string>
#include <vector>
using namespace std;
string solution(string s, int n) {
string answer;
for(int i=0; i<s.size(); i++)
{
if(s[i]>='A' && s[i]<='Z')
{
if(s[i]+n>'Z')
{
s[i]+=n-'Z'+'A'-1;
}
else
{
s[i]+=n;
}
}
else if(s[i]>='a' && s[i]<='z')
{
if(s[i]+n>'z')
{
s[i]+=n-'z'+'a'-1;
}
else
{
s[i]+=n;
}
}
}
answer=s;
return answer;
}
지난 문제에 이어 알파벳의 아스키코드를 이애하고, 주어진 조건에 맞게 프로그래밍하는 과정이지만 중요한 부분은 숫자를 문자와 연산할 때의 과정인 것 같습니다.
반응형
'프로그래머스 Lv.1 코딩테스트' 카테고리의 다른 글
[프로그래머스 Lv.1] 약수의 개수와 덧셈 (0) | 2022.03.02 |
---|---|
[프로그래머스 Lv.1] 같은 숫자는 싫어 (0) | 2022.03.02 |
[프로그래머스 Lv.1] 문자열 내 p와 y의 개수 (0) | 2022.02.17 |
[프로그래머스 Lv.1] 서울에서 김서방 찾기 (0) | 2022.02.17 |
[프로그래머스 Lv.1] 이상한 문자 만들기 (0) | 2022.02.17 |