Programmers Lv.1 - 시저 암호[Java]

seren-dev·2022년 5월 4일

Programmers Lv.1

목록 보기
6/15

https://programmers.co.kr/learn/courses/30/lessons/12926

접근

  • 주어진 String을 char 배열로 변환한 후 ' ', 소문자, 대문자인 경우 각각의 경우에 대해 arr[i]를 바꿔줌
  • 그 후 arr[i]를 String으로 변환

나의 풀이 + 수정한 버전

class Solution {
    public String solution(String s, int n) {
        char[] arr = s.toCharArray();

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == ' ') continue;
            
            if (Character.isLowerCase(arr[i])) {
                arr[i] = (char)((arr[i] - 'a' + n) % 26 + 'a');
            }
            else {
                arr[i] = (char)((arr[i] - 'A' + n) % 26 + 'A');
            }
        }
        
        return String.valueOf(arr);
    }
}
  • String을 char 배열로 변환
  • arr[i] == ' '인 경우 continue
  • Character.isLowerCase(arr[i]) 를 사용해 arr[i]가 소문자인지 검사
  • (arr[i] - 'a' + n) % 26 + 'a'를 계산한 후 (char)로 변경

0개의 댓글