-
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