
나의 풀이
class Solution {
public String solution(String s, int n) {
String answer = "";
for(int i = 0 ; i < s.length() ; i++) {
char ch = s.charAt(i);
if(ch == ' ') {
answer += ch;
continue;
}
if(ch >= 'a' && ch <= 'z') {
if(ch + n > 'z') {
answer += (char)(ch - 26 + n);
}else {
answer += (char)(ch + n);
}
}else if(ch >= 'A' && ch <= 'Z') {
if(ch + n > 'Z') {
answer += (char)(ch - 26 + n);
}else {
answer += (char)(ch + n);
}
}
}
return answer;
}
}
z가 넘어가면 ch에서 알파벳 갯수(26)를 빼고 거리(n)를 더해준다.
다른 사람의 풀이
class Solution {
public String solution(String s, int n) {
String answer = "";
for(int i=0; i<s.length(); i++) {
char ch = s.charAt(i);
if(Character.isLowerCase(ch)) {
ch = (char) ((ch - 'a' + n) % 26 + 'a');
} else if(Character.isUpperCase(ch)) {
ch = (char) ((ch - 'A' + n) % 26 + 'A');
}
answer += ch;
}
return answer;
}
}'알고리즘' 카테고리의 다른 글
| [프로그래머스] 두 개 뽑아서 더하기(Java) * (0) | 2024.12.03 |
|---|---|
| [프로그래머스] 숫자 문자열과 영단어(Java) * (0) | 2024.12.02 |
| [프로그래머스] 최소직사각형(Java) * (0) | 2024.11.28 |
| [프로그래머스] 크기가 작은 부분 문자열(Java) * (0) | 2024.11.27 |
| [프로그래머스] 삼총사(Java) (0) | 2024.11.26 |