시저 암호 Lv. 1

박영준·2023년 6월 21일
0

코딩테스트

목록 보기
268/300
class Solution {
    public String solution(String s, int n) {
        String answer = "";
        return answer;
    }
}

해결법

방법 1

class Solution {
    public String solution(String s, int n) {
        String answer = "";
        
        for (int i = 0; i < s.length(); i++) {
			char ch = s.charAt(i);
            
            // ch 가 대문자 일 경우
            if ('A' <= ch && ch <= 'Z') {
                ch = (char)(ch + n);
                if (ch > 'Z') {
					ch -= 26;
                }    
            // ch 가 소문자 일 경우    
            } else if ('a' <= ch && ch <= 'z') {
                ch = (char)(ch + n);
                if (ch > 'z') {
					ch -= 26;
                }
            }
            
            answer += ch;
        }
            
        return answer;
    }
}
  • 참고: 문자 개수 세기 Lv. 0

  • ch -= 26

    • 소문자는 소문자대로(a ~ z), 대문자는 대문자대로(A ~ Z) 계속 반복되기때문에,
      z 또는 Z를 넘어가게 되면, a 또는 A부터 다시 새로운 문자가 배정됨

시저 암호 Lv. 1

profile
개발자로 거듭나기!

0개의 댓글