[ 시저 암호 ]
https://programmers.co.kr/learn/courses/30/lessons/12926
- 입력받은 알파벳(s)을 입력된 수(n) 만큼 미루면 암호가 나오는 구조이므로
입력받은 알파벳(s)을 한글자 한글자씩 따와서 소문자인지 대문자인지 판단.
//소문자 z(아스키코드 : 90)에 25가 더해지면 나중에 대문자 계산에서 오류 날 수 있으므로- 판별한 문자가 공백이면 그대로 answer 문자열에 담아준다.
- 판별한 문자에 n을 더해서 'z' / 'Z' (90/122)이 넘어가면 'a' / 'A'(65/97)로 돌아가서 더하고 남은 (n)을 더해준다.
- 나온 글자를 answer 문자열에 += 연산자를 통해 붙여주고 마지막에 answer에 반환.
class Solution {
public String solution(String s, int n) {
String answer = "";
int ascii = 0;
for(int i=0; i<s.length(); i++) {
int judge = 0; //0 이면 (대문자), 1이면 (소문자)
ascii = s.charAt(i);
if(ascii >= 97) {
judge = 1; //소문자로 판단
}
if(ascii != ' ') {
ascii = ascii + n;
if(judge==0 && ascii > 90) {
answer += (char)(65+ascii-91);
}
else if(judge ==1 && ascii>122) {
answer += (char)(97+ascii-123);
}
else {
answer += (char)(ascii);
}
}
else if(ascii == ' ') {
answer += ' ';
}
}
return answer;
}
}