티스토리 뷰

JAVA

알고리즘 연습 -시저 암호 -JAVA

LoveApple 2019. 1. 14. 18:30

문제


문제해석

- 아스키코드를 이용하여 문자를 판별합니다. 

 ì•„스키코드에 대한 이미지 검색결과

1. char형의 문자열s 길이만큼의 빈배열을 만들어줍니다.

2. 빈 배열에 문자를 입력된 문자 하나하나를 집어 넣어 줍니다.

3. 배열에 들어간 문자가 대문자인지, 소문자인지, 공백인지 판별해줍니다.

- 여기서 판별해주는 이유는 마지막 Z,z값이 넘어가게되면 A,a로 돌려줘야 하기때문에 판별 해줍니다.

4. 그리고 입력된 문자와 +n값이 90,122를 초과하게 되면 다시 앞으로 돌려줘야 하기 때문에 -26+n으로 A~Z까지 순환되게 해줍니다.

5. 공백이면 " "를 넣어 주면 됩니다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class Sol{
    public String solution(String s,int n) {
        char[] ch1 = new char[s.length()];
        StringBuffer sb1 = new StringBuffer();
        for(int i=0;i<ch1.length;i++) {
            ch1[i] = s.charAt(i);
            if(Character.isUpperCase(ch1[i])) { //대문
                if(ch1[i]+> 90) {
                    int cnt = ch1[i]-26+n;
                    sb1.append((char)cnt);
                }else {
                    int cnt2 = ch1[i]+n;
                    sb1.append((char)cnt2);
                }
                
            }
            else if(Character.isLowerCase(ch1[i])) {//소문
                if(ch1[i]+> 122) {
                    int cnt = ch1[i]-26+n;
                    sb1.append((char)cnt);
                }else {
                    int cnt2 = ch1[i]+n;
                    sb1.append((char)cnt2);
                }
            }
            else { //공백
                sb1.append(" ");
                
            }
        }
        return sb1.toString();
    }
}
public class pass2 {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Sol ss = new Sol();
        System.out.println(ss.solution("X Y Z"1));
 
    }
 
}
cs
HyunInKim/algorithm
Contribute to HyunInKim/algorithm development by creating an account on GitHub.
github.com


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함