[프로그래머스, 155652] 둘만의 암호 (java)
Problem Solving/Programmers

[프로그래머스, 155652] 둘만의 암호 (java)

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/155652

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

728x90

메모리: 77.4 MB, 시간: 0.09 ms

사용 알고리즘: 문자열

class Solution {
    public String solution(String s, String skip, int index) {
        
        // 각 알파벳이 skip에 포함되는지 여부 확인
        boolean[] inSkip = new boolean['z' - 'a' + 1];
        for(int i = 0; i < skip.length(); i++) {
            inSkip[skip.charAt(i) - 'a'] = true;
        }
        
        StringBuilder answer = new StringBuilder();
        
        int now;
        for(int i = 0; i < s.length(); i++) {
            now = s.charAt(i) - 'a';
            for(int j = 0; j < index; j++) {
                now = now == 'z' - 'a' ? 0 : now + 1;
                while(inSkip[now]) {
                    now = now == 'z' - 'a' ? 0 : now + 1;
                }
            }
            answer.append((char)('a' + now));
        }
        
        
        return answer.toString();
    }
}
728x90