#12926 시저 암호
문제 정리
s를 n만큼 민 암호문 리턴
(공백은 안 밀림)
순서는 A~Z, Z는 밀면 A가 됨
생각해보기
아스키 코드 쓰는거겠지? 대문자, 소문자, 공백을 먼저 구분 후에
대문자면 A로 나눈 나머지에 따라 계산하면 될 것 같고..
소문자면 a로 나눈 나머지에 따라
코드 쓰기
내 풀이
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string solution(string s, int n) {
string answer = "";
for(int i=0; i<s.size(); i++){
int num = s[i] + n;
if( 65 <= s[i] && s[i] <= 90){
// 대문자
if(num > 90){
num -= 26;
}
answer += num;
} else if ( 97 <= s[i] && s[i] <= 122) {
// 소문자
if(num > 122){
num -= 26;
}
answer += num;
} else {
// 공백
answer += ' ';
}
}
return answer;
}
풀고 나서 알게된 것
string에 int 더하면 알아서 char로 인식하네..~
islower(a)
isupper(a)
로 대문자인지 소문자인지 알 수 있다..헐.,,