본문 바로가기

알고리즘/Programmers

[Programmers] Level1. 시저암호 (Java)

Level1. 시저암호 (Java)

문제설명 )

 

풀이Code )

class Solution {
    public String solution(String s, int n) { // A = 65~90 a = 97~122
        String answer = "";
        
        for (int i=0; i<s.length(); i++) {
                if (s.charAt(i) == ' ') { // 공백일때
                    answer += ' ';
                } else { // 공백이 아닐때
                    if ( s.charAt(i) <= 90 ) { // 대문자일때
                        int tmp = s.charAt(i) + n;
                        if ( tmp > 90 ) {
                            tmp = (tmp - 90) + 64;
                        } 
                        answer += (char)tmp;
                    } else { // 소문자일때
                        int tmp = s.charAt(i) + n;
                        if ( tmp > 122 ) {
                            tmp = (tmp - 122) + 96; 
                        } 
                        answer += (char)tmp;
                    }   
                }
            }
        
        return answer;   
    }
}

 

 

풀이법 )

1. 공백이 들어오게 되면 공백을 그대로 answer에 대입

2. 공백이 아닌값이 들어오면 대문자인지 소문자인지 판별하여 나눠줌

3. tmp 라는 임시 변수를 선언하여 s의 i번째 방에 있는 알파벳에 값을 더해주거나 빼준다, z를 넘어가게 되면 90을 빼고 64를 더해주어 다시 위치를 잡아주고 answer에 대입