<문제>
<접근 방식>
1) 현재 문자에서 n만큼 이동한 값의 값이 소문자의 경우 'z' 보다, 대문자의 경우 'Z' 보다 큰경우를 고려한다.
-> 대문자인 경우 예시: (word + n - 'A') % 26 + 'A'
2) 공백인 경우는 그대로 공백으로 넣어준다.
3) StringBuilder를 사용해 문자를 추가해준다.
<코드>
class Solution {
public String solution(String s, int n) {
StringBuilder answer = new StringBuilder();
for(char word : s.toCharArray()) {
if(word == ' ') {
answer.append(" ");
}
else if(Character.isUpperCase(word)) {
answer.append((char)((word + n - 'A') % 26 + 'A'));
}
else {
answer.append((char)((word + n - 'a') % 26 + 'a'));
}
}
return answer.toString();
}
}
반응형
'코딩 테스트 > 알고리즘(Java)' 카테고리의 다른 글
[프로그래머스/Lv.2] 카펫 (0) | 2025.02.04 |
---|---|
[프로그래머스/Lv.1] 가장 가까운 같은 글자 (0) | 2025.01.24 |
[프로그래머스/Lv.1] 최소직사각형 (0) | 2025.01.23 |
[프로그래머스/Lv.2] 짝지어 제거하기 (1) | 2025.01.21 |
[프로그래머스/Lv.2] 다음 큰 숫자 (0) | 2025.01.16 |