어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다.
"z"는 1만큼 밀면 "a"가 됩니다.
문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.
s | n | result |
---|---|---|
"AB" | 1 | "BC" |
"z" | 1 | "a" |
"a B z" | 4 | "e F d" |
class Solution {
public String solution(String s, int n) {
String answer = "";
for(char ch : s.toCharArray()) {
if(ch == ' ') {
answer += ch;
}
else if(ch >= 'a' && ch <= 'z') {
answer += (char)('a' + (ch-'a' +n) % 26);
}
else {
answer += (char)('A' + (ch-'A' +n) % 26);
}
}
return answer;
}
}
a에서부터의 거리를 계산한다고 혼자 손으로 테이블 여기저기 짚어가며 이해했다ㅠㅠㅠㅋㅋㅋㅋ공간감각이 이렇게나 없다니..실화냐😅ㅠㅠㅠㅠㅠㅠㅠ
그래도 한 번 이해하고나니 코드를 봤을 때 머릿속에 그림이 잘 그려진다
불행 중 다행...🥲🥲🥲
공간감각은 어떻게 키워야 하지?
상상을 많이 해야 하나?......🤔