(프로그래머) 비밀번호

문제 설명

두 개의 문자열 s, skip 및 자연수 인덱스가 주어지면 다음 규칙에 따라 문자열을 생성하려고 합니다. 암호 규칙은 다음과 같습니다.

– 문자열 s의 각 알파벳을 알파벳 다음에 인덱스로 바꿉니다.

– 인덱스 뒤의 글자 수가 z를 초과하면 다시 a로 되돌아갑니다.

– Skip에서 알파벳만 빼고 건너뜁니다.

예를 들어 s = “aukks”, skip = “wbqd”, index = 5이면 문자 5는 af에서 왔지만 (b,c,d,e,f)의 ‘b’와 ‘d’는 계산되지 않습니다. , 건너뛰기에 포함되어 있기 때문입니다.

따라서 “b”와 “d”를 제외하고 알파벳은 (c, e, f, g, h)의 순서로 “a”에서 “h”까지 5가 됩니다. 위의 규칙에 따라 나머지 “ukks”를 변경하면 “appy”가 되고 결과는 “happy”가 됩니다.

두 개의 문자열 s, skip, 자연수 인덱스를 매개변수로 하여 위의 규칙에 따라 s를 변환한 결과를 반환하는 solve 함수를 완성합니다.

제한

– 길이 5 ≤ s ≤ 50

– 1 ≤ 점프 길이 ≤ 10

– s와 skip은 모두 알파벳 소문자입니다.

– Skip에 포함된 알파벳은 s에 포함되지 않습니다.
– 1 ≤ 인덱스 ≤ 20

I/O 예시

에스 건너뛰다 색인 결과
“오크스” “wbqd” 5 “행복하다”

화신

class Solution {
    public String solution(String s, String skip, int index) {
        String answer = "";
        char() sCharArray = s.toCharArray();
        for(int i=0; i<sCharArray.length; i++ ){
            for(int j=0; j<index; j++){
                do{
                    sCharArray(i)++;
                    if(sCharArray(i) > 'z'){
                        sCharArray(i) -= 26;
                    }
                }while(skip.contains(String.valueOf(sCharArray(i))));
            }
        }
        answer = String.valueOf(sCharArray);
        return answer;
    }
}