두 문자열 s와 skip, 그리고 자연수 index가 매개변수로 주어질 때 규칙대로 s를 변환한 결과를 return하는 solution함수를 작성하는 문제이다.
문자열 s의 각 알파벳(target)의 몇 번째 뒤의 알파벳인지 저장할 count 변수를 선언하고, 알파벳에 1씩 더해(target + 1) 뒤의 알파벳을 탐색한다. 탐색한 알파벳이 skip되지 않았다면 count에 1을 더한다. count가 index와 같아졌을 때의 알파벳(target)을 문자열에 합친다.
class Solution {
public String solution(String s, String skip, int index) {
String answer = "";
StringBuilder sb = new StringBuilder();
// 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꾸기
for (int i = 0; i < s.length(); i++) {
char target = s.charAt(i);
int count = 0;
while(count < index) {
target = (char)(target + 1);
if (target > 'z') {
target -= 26;
}
boolean sk = true;
for (int j = 0; j < skip.length(); j++) {
if (target == skip.charAt(j)) {
sk = false;
break;
}
}
if (sk) {
count++;
}
}
sb.append(target);
}
answer = sb.toString();
return answer;
}
}