EunJng

[PRO] 둘만의 암호 | Java 본문

PROBLEM/PROGRAMMERS

[PRO] 둘만의 암호 | Java

Eunjng 2023. 6. 19. 16:00

문제

프로그래머스 코딩테스트 연습 > 연습문제 > 둘만의 암호 | Lv.1

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

 

프로그래머스

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

programmers.co.kr

 

 

풀이 과정

자바 풀이

import java.util.*;

class Solution {
    public String solution(String s, String skip, int index) {
        String answer = "";
        
        for(int i=0; i<s.length(); i++) {
            char ch = s.charAt(i);
            int cnt = 0;
            while(cnt < index) {
                ch++;
                // z 넘어가면 a로 돌아가기 위해 26 빼줌
                if(ch > 'z') {
                    ch -= 26;
                }
                // ch가 skip에 있으면 cnt 증가x
                // contains 사용을 위해 ch를 String으로 변경
                if(skip.contains(Character.toString(ch))) {
                    continue;
                }
                cnt++;
            }
            answer += ch;
        }
        return answer;
    }
}
  • s의 한 글자씩 증가 횟수가 index가 될 때까지 1씩 증가하였고, 만약 skip에 포함되면 cnt를 증가시키지 않았다.
    또한 z를 넘어가면 26을 빼서 a로 돌아가도록 하였는데, index가 20이하이기 때문에 두 바퀴 이상 돌지 않아 %를 사용하지 않고 단순하게 빼기로만 처리하였다.