반응형
내가 느끼기에는 알고리즘 1단계 치고 너무 어려웠다…
private final char[] alphabet
= new char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
public String solution(String s, String skip, int index) {
String answer = "";
char[] sChars = s.toCharArray();
char[] skipChars = skip.toCharArray();
for(int i = 0; i < sChars.length; i++){
char sChar = sChars[i];
int sIndex = 0;
for(int k = 0; k < alphabet.length; k++){
if(sChar == alphabet[k]) break;
else sIndex++;
}
for(int j = 0; j < index; j++){
sIndex++; // 먼저 index를 1 증가시켜야 함
if(sIndex >= alphabet.length) { // 길이가 더 길어지면 0으로 초기화
sIndex = 0;
}
sChar = alphabet[sIndex];
for(int l = 0; l < skipChars.length; l++){
if(sChar == skipChars[l]) {
l = -1; // 처음 부터 다시 비교 해야함
sIndex++;
if(sIndex >= alphabet.length) {
sIndex = 0;
}
sChar = alphabet[sIndex];
}
}
}
answer += sChar;
}
return answer;
}
테스트 케이스
"aukks", "wbqd", 5 ⇒ “happy”
"a", "cb", 1 ⇒ “d” (중요)
"a", "bcdefghijk", 20 ⇒ “o”
"a", "cb", 1 이 케이스를 생각 못해서 오래 걸렸다.
'Algorithm' 카테고리의 다른 글
[Algorithm] 달리기 경주 (0) | 2023.11.10 |
---|---|
[Algorithm] 월간 코드 챌린지 시즌3 >> 나머지가 1이 되는 수 찾기 (0) | 2023.07.20 |
[Algorithm] 스택/큐 같은 숫자는 싫어 (0) | 2023.07.20 |
[Algorithm] [완전탐색] 최소직사각형 (0) | 2023.07.20 |
[Algorithm] 소수 구하기 (0) | 2021.04.01 |