문제
풀이
단순하게 대문자인지 소문자인지 확인하고 더해놓고 기준을 넘어가면 다시 빼줬다.
class Solution {
public String solution(String s, int n) {
char c[] = s.toCharArray();
// 대문자 65-90 소문자 97-122
for (int i=0;i<c.length;i++){
// 대문자인데 더했을때 90 넘어가면 -26
if (c[i]>=65 && c[i]<=90){
c[i]+=n;
if (c[i]>90) c[i]-=26;
}
// 소문자인데 122 넘어가면 -26
else if (c[i]>=97 && c[i]<=122){
c[i]+=n;
if (c[i]>122) c[i]-=26;
}
}
return String.valueOf(c);
}
}
+
다른사람풀이
알파벳 아스키코드를 몰라도 풀수 있는 방법이었다.
a-z까지 개수가 26이나 처음부턴 n에 26을 나눈 몫을 주고,
Character.isLowerCase()와 isUpperCase()로 대문자 소문자를 구별했다.
class Solution {
public String solution(String s, int n) {
n=n%26;
char c[] = s.toCharArray();
for (int i=0;i<c.length;i++){
if (Character.isUpperCase(c[i])){
c[i] = (char)((c[i]-'A'+n)%26+'A');
}
else if (Character.isLowerCase(c[i])){
c[i] = (char)((c[i]-'a'+n)%26+'a');
}
}
return String.valueOf(c);
}
}
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 : 모의고사 (0) | 2022.02.11 |
---|---|
[Java] 프로그래머스 : k번째 수 (0) | 2022.02.11 |
[Java] 프로그래머스 : 콜라츠 추측 (0) | 2022.02.07 |
[Java] 프로그래머스 : 3진법 뒤집기 (0) | 2022.02.07 |
[Java] 프로그래머스 : 이상한 문자 만들기 (0) | 2022.02.07 |