https://school.programmers.co.kr/tryouts/71852/challenges
이 문제는 어떻게 char를 밀것인지가 관건이다.
✨따라서 알파벳의 마지막에 도달하면 다시 처음부터 시작하도록 설정해야한다.
▼핵심 코드
public char push(char c, int n){
if(!Character.isLetter(c)){
return c;
}
int offset = Character.isUpperCase(c) ? 'A' : 'a';
int position = c - offset;
position = (position + n) % ('Z' - 'A' + 1);
return (char) (offset + position);
}
class Solution {
public String solution(String s, int n) {
StringBuilder sb = new StringBuilder();
for(char c : s.toCharArray()) {
sb.append(push(c, n));
}
return sb.toString();
}
public char push(char c, int n){
if(!Character.isLetter(c)){
return c;
}
int offset = Character.isUpperCase(c) ? 'A' : 'a';
int position = c - offset;
position = (position + n) % ('Z' - 'A' + 1);
return (char) (offset + position);
}
}