알고리즘
[프로그래머스] 시저 암호(Java) *
muerha
2024. 11. 29. 21:15

나의 풀이
class Solution {
public String solution(String s, int n) {
String answer = "";
for(int i = 0 ; i < s.length() ; i++) {
char ch = s.charAt(i);
if(ch == ' ') {
answer += ch;
continue;
}
if(ch >= 'a' && ch <= 'z') {
if(ch + n > 'z') {
answer += (char)(ch - 26 + n);
}else {
answer += (char)(ch + n);
}
}else if(ch >= 'A' && ch <= 'Z') {
if(ch + n > 'Z') {
answer += (char)(ch - 26 + n);
}else {
answer += (char)(ch + n);
}
}
}
return answer;
}
}
z가 넘어가면 ch에서 알파벳 갯수(26)를 빼고 거리(n)를 더해준다.
다른 사람의 풀이
class Solution {
public String solution(String s, int n) {
String answer = "";
for(int i=0; i<s.length(); i++) {
char ch = s.charAt(i);
if(Character.isLowerCase(ch)) {
ch = (char) ((ch - 'a' + n) % 26 + 'a');
} else if(Character.isUpperCase(ch)) {
ch = (char) ((ch - 'A' + n) % 26 + 'A');
}
answer += ch;
}
return answer;
}
}