개발 낙서장

[프로그래머스][JAVA] 둘만의 암호 본문

Algorithm/Programmers

[프로그래머스][JAVA] 둘만의 암호

권승준 2024. 2. 2. 09:26

둘만의 암호

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 방법

뭔가 좀 더 수학적으로 해결하는 획기적인 풀이법이 있을 것 같지만 나는 잘 모르겠다.
그냥 하나하나 아스키코드로 변환해서 더해준 다음 추가하는 방식으로 풀이했다.

소스 코드

더보기
import java.util.HashMap;
import java.util.Map;

class Solution {
    public String solution(String s, String skip, int index) {
        String answer = "";
        
        Map<Character, Boolean> map = new HashMap<>();
        StringBuilder sb = new StringBuilder();
        
        for(int i = 0; i < skip.length(); i++) {
            map.put(skip.charAt(i), true);
        }

        for(int i = 0; i < s.length(); i++) {
            int cnt = index;
            int ascii = (int)s.charAt(i);

            while(cnt > 0) {
                ascii++;
                if(ascii > (int)'z') {
                    ascii = (int)'a';
                }

                if(map.containsKey((char)ascii)) {
                    continue;
                }

                cnt--;
            }

            sb.append((char)ascii);
        }
        
        return sb.toString();
    }
}
Comments