-
728x90
- 공백이면, 그냥 공백 그대로 더하고
- 소문자 이면서, n만큼 뒤로 간 것이 'z'를 넘어간 경우 => 'z'를 벗어난 만큼의 크기를 다시 'a'부터 가주면 된다.
'z'를 벗어난 만큼의 크기 = 문자 - 'z'
'a' 부터 [ 'z'를 벗어난 만큼의 크기 ]을 가는 법 = 'a' + ( 문자 - 'z' ) -1 을 해준다.
ㄴ 'a'부터이기 때문에 -1을 꼭 해주어야 한다.- 대문자도 같은 원리로 해준다.
class Solution { public String solution(String s, int n) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == ' ') { sb.append(" "); continue; } char c = (char) (s.charAt(i) + n); if (c > 'z' && s.charAt(i) <= 'z') c = (char) (c - 'z' + 'a' - 1); else if (c > 'Z' && s.charAt(i) <= 'Z') c = (char) (c - 'Z' + 'A' - 1); sb.append(c); } return sb.toString(); } }
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[level1] 프로그래머스 - 이상한 문자 만들기(JAVA) (0) 2021.08.31 [level1] 프로그래머스 - 약수의 합(JAVA) (0) 2021.08.31 [level1] 프로그래머스 - 문자열을 정수로 바꾸기(JAVA) (0) 2021.08.31 [level1] 프로그래머스 - 수박수박수박수박수박수?(JAVA) (0) 2021.08.31 [level1] 프로그래머스 - 소수 찾기(JAVA) (0) 2021.08.31 댓글