ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Level1) 시저 암호
    PS/programmers 2020. 9. 9. 19:30
    class Solution {
        public String solution(String s, int n) {
            char[] arr = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
                          'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
                          'w', 'x', 'y', 'z'};
            char[] brr = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
                          'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
                          'W', 'X', 'Y', 'Z'};
            StringBuffer sb = new StringBuffer();
    
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) >= 'a' && s.charAt(i) <= 'z') { 
                    sb.append(arr[(s.charAt(i) -'a' + n)%26]);
                } else if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') { 
                    sb.append(brr[(s.charAt(i) -'A' + n)%26]);
                } else {
                    sb.append(" ");
                }
            }
            return sb.toString();
        }
    }

    - 성공

    - 무식한 방법 같긴 한데 다른 방법 생각이 안나서 해봤음 ...

     

    class Solution {
        public String solution(String s, int n) {
            String answer = "";
            for (char ch : s.toCharArray()) {
                if (ch == ' ') {
                    answer += ch;
                } else if (ch >= 'a' && ch <= 'z') {
                    answer += (char) ('a' + (ch + n - 'a') % 26);
                } else {
                    answer += (char) ('A' + (ch + n - 'A') % 26);
                }
            }
            System.out.println(answer);
            return answer;
        }
    }

    - 다른 사람 비슷한 풀이인데 이렇게 하는게 훨씬 좋아보임

    - 소문자, 대문자 구분

    - (char) ('a' + (ch+n-'a') % 26)

    - (char) ('A' + (ch+n-'A') % 26)

    'PS > programmers' 카테고리의 다른 글

    Level1) 완주하지 못한 선수  (0) 2020.09.10
    Level1) 약수의 합  (0) 2020.09.09
    Level1) 문자열을 정수로 바꾸기  (0) 2020.09.09
    Level1) 수박수박수박수박수박수?  (0) 2020.09.09
    Level1) 소수 찾기  (0) 2020.09.09
킹수빈닷컴