문제

풀이
import java.util.*;
class Solution {
static ArrayList<Character> list = new ArrayList<>();
public String solution(String s, String skip, int index) {
String answer = "";
for(char c : skip.toCharArray()){
list.add(c);
}
for(int i=0; i<s.length(); i++){
char c = s.charAt(i);
for(int j=1; j<=index; j++){
c++;
if(c>'z') c-=26;
if(list.contains(c)) j--; //한번 더 돌게
}
answer+=c;
}
return answer;
}
}
- 2중 for문으로 s.charAt()을 파헤쳐나가면 된다.
- 만약에 해당 s.charAt()인 c가 알파벳 범위를 넘어가면 c-=26;을 해줘야 하는 부분이 핵심부분이다.
- 그리고 만약에 건너뛰어야하는 리스트에 해당되는 c면 j--를 해줘서 for문이 한번 더 돌아가게 해주면된다.