728x90
이해하기
처음에는 대문자를 생각하지 않고 풀이해서 'z'일 경우만 처리했다가 실패했다.
문제를 잘 읽는 습관을 들여야하는데...
- s를 charArray로 만들어 순회
- c가 공백이면 공백을 sb.append 후 continue
- c가 소문자일 때
- c + n이 'z'를 넘어간다면 c + n - 26 해줄 것
- 아니라면 c + n
- c가 대문자일 때
- c + n이 'Z'를 넘어간다면 c + n - 26
- 아니라면 c + n
문제풀이
import java.util.*;
class Solution {
public String solution(String s, int n) {
StringBuffer sb = new StringBuffer();
for (char c : s.toCharArray()) {
if (c == ' ') {
sb.append(" ");
continue;
}
if (c >= 'a' && c <= 'z') {
if (c + n > 'z') {
sb.append((char)(c - 26 + n));
} else {
sb.append((char)(c + n));
}
}
if (c >= 'A' && c <= 'Z') {
if (c + n > 'Z') {
sb.append((char)(c - 26 + n));
} else {
sb.append((char)(c + n));
}
}
}
return sb.toString();
}
}
'JAVA > Coding Test Study' 카테고리의 다른 글
[Lv.0] 프로그래머스 - 세 개의 구분자 : Java (0) | 2024.04.30 |
---|---|
[Lv.0] 프로그래머스 - 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 : Java (0) | 2024.04.30 |
[Lv.0] 프로그래머스 - 접미사인지 확인하기 (1) | 2024.04.19 |
[Lv.0] 프로그래머스 - 배열 만들기 5 : Java (0) | 2024.04.19 |
[Lv.0] 프로그래머스 - 주사위 게임 3 : Java (1) | 2024.04.19 |