[Programmers] level 1 - 시저 암호

Lynn·2021년 2월 11일
0

Algorithm

목록 보기
28/43
post-thumbnail

👩🏻‍💻 문제

👩🏻‍💻 정답 코드

class Solution {
    public String solution(String s, int n) {
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<s.length(); i++){
            char c = s.charAt(i);
            if (65<=c && c<=90){
                c = (char) (((c+n)-65)%26+65);
                sb.append(c);
            }
            else if (97<=c && c<=122){
                c = (char) (((c+n)-97)%26+97);
                sb.append(c);
            }
            else sb.append(' ');
        }
        String answer = sb.toString();
        return answer;
    }
}

아스키코드를 사용해서 s의 한 char씩 n만큼 더해서 바뀐 char를 StringBuilder로 append()를 해 줬다. 근데 더했을 때 알파벳의 아스키코드 범위 (대문자: 65~90, 소문자: 97~122)를 벗어날 경우를 생각해서 알파벳 개수인 26으로 나눴을 때의 나머지를 활용해서 계산을 했다.


👩🏻‍💻 Remember

StringBuilder sb = new StringBuilder();
sb.append(c);
String answer = sb.toString();

아스키코드표

profile
wanderlust

0개의 댓글