본문 바로가기
코딩 테스트/알고리즘(Java)

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

by KeepCoding 2025. 1. 23.

<문제>

 

 

<접근 방식>

1) 현재 문자에서 n만큼 이동한 값의 값이 소문자의 경우 'z' 보다, 대문자의 경우 'Z' 보다 큰경우를 고려한다.

-> 대문자인 경우 예시: (word + n - 'A') % 26 + 'A'

2) 공백인 경우는 그대로 공백으로 넣어준다.

3) StringBuilder를 사용해 문자를 추가해준다.

 

 

<코드>

class Solution {
    public String solution(String s, int n) {
        StringBuilder answer = new StringBuilder();
                
        for(char word : s.toCharArray()) {
            if(word == ' ') {
                answer.append(" ");
            }
            else if(Character.isUpperCase(word)) {
                answer.append((char)((word + n - 'A') % 26 + 'A'));
            }
            else {
                answer.append((char)((word + n - 'a') % 26 + 'a'));
            }
        }
        return answer.toString();
    }
}
반응형