반응형
문제설명
- 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다.
- 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다.
- 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.
제한사항
- 공백은 아무리 밀어도 공백입니다.
- s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다.
- s의 길이는 8000이하입니다.
- n은 1 이상, 25이하인 자연수입니다.
입출력 예
s | n | result |
"AB" | "z" | "a B z" |
1 | 1 | 4 |
"BC" | "a" | "e F d" |
[ 내가 푼 방법 ]
class Solution {
public String solution(String s, int n) {
String answer = "";
char[] chars = s.toCharArray();
for (char c : chars) {
if ((int)c == 32) { // 띄어쓰기
answer += " ";
continue;
}
int num = ((int) c) + n;
if (Character.isUpperCase(c)) { // 대문자: 65~90
num = num - 90 > 0 ? num -26 : num;
} else { // 소문자: 97~122
num = num - 122 > 0 ? num - 26 : num;
}
answer += String.valueOf((char) num);
}
return answer;
}
}
1. 공백인 경우 그대로 answer에 " " 를 더해준다.
2. char이 대문자인지 소문자인지 구분해서 범위를 정해준다.
아스키코드 : 대문자 A(65) ~ 대문자 Z(90), 소문자 a(91) ~ 소문자 z(122)
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 1차 비밀지도 - Java(자바) (0) | 2023.02.10 |
---|---|
[프로그래머스] 삼총사 - Java(자바) (0) | 2023.02.06 |
[프로그래머스] 두 개 뽑아서 더하기 - Java(자바) (0) | 2022.10.30 |
[프로그래머스] 나누어 떨어지는 숫자 배열 - Java(자바) (0) | 2022.10.18 |
[프로그래머스] 예산 - Java(자바) (0) | 2022.10.10 |