[프로그래머스] Lv.1 시저 암호.java

hgghfgf·2023년 5월 12일
0

프로그래머스

목록 보기
57/227

시저 암호.java

class Solution {
    public String solution(String s, int n) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            if (ch >= 'a' && ch <= 'z') { // 소문자 처리
                ch = (char) ((ch - 'a' + n) % 26 + 'a');
            } else if (ch >= 'A' && ch <= 'Z') { // 대문자 처리
                ch = (char) ((ch - 'A' + n) % 26 + 'A');
            }
            sb.append(ch);
        }
        return sb.toString();
    }
}

문자열 s의 각 글자를 순회하면서 각 알파벳을 n만큼 밀어서 다른 알파벳으로 바꾸기 위해 if문으로 소문자와 대문자를 구분합니다. 각각에 대해서 아스키 코드 값을 이용하여 계산하고, 다시 문자로 변환하여 StringBuilder에 추가합니다. 마지막으로 StringBuilder를 String으로 변환하여 반환합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글