
A부터 Z까지, 그리고 a부터 z까지 대문자와 소문자를 각각 리스트에 저장한다.
모든 문자를 돌면서 아래 반복문을 반복한다.
먼저 공백이라면 공백을 answer에 더한다.
대문자라면 대문자 리스트에서, 소문자라면 소문자 리스트에서 아래를 반복한다.
암호화하고자 하는 문자가 어느 인덱스에 존재하는지 확인한다.
그 후에 (인덱스+n)%26에 해당하는 값을 넣는다.
import java.util.*;
class Solution {
public String solution(String s, int n) {
String answer = "";
List<Character> alphabetUpper = Arrays.asList(
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
);
List<Character> alphabetLower = Arrays.asList(
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
);
for (int i = 0; i < s.length(); i ++) {
char c = s.charAt(i);
if (c == ' ') {
answer += " ";
}
else if (alphabetUpper.contains(c)) {
int idx = alphabetUpper.indexOf(c);
answer += alphabetUpper.get((idx+n)%26);
}
else {
int idx = alphabetLower.indexOf(c);
answer += alphabetLower.get((idx+n)%26);
}
}
return answer;
}
}
