
내가 작성한 코드
class Solution {
public String solution(String s, String skip, int index) {
StringBuilder answer = new StringBuilder();
for (char c : s.toCharArray()) {
char nextChar = c;
// 1단계씩 다음 문자로 이동
for (int i = 0; i < index; i++) {
nextChar++;
// 만약 'z'를 넘어가면 'a'로 돌아감
if (nextChar > 'z') {
nextChar = 'a';
}
// skip에 포함된 문자는 건너뜀
if (skip.indexOf(nextChar) != -1) {
i--;
continue;
}
}
answer.append(nextChar);
}
return answer.toString();
}
}
다른 사람의 코드
class Solution {
public String solution(String s, String skip, int index) {
StringBuilder answer = new StringBuilder();
for (char letter : s.toCharArray()) {
char temp = letter;
int idx = 0;
while (idx < index) {
// 현재 문자가 'z'라면 'a'로 변경, 아니면 다음 문자로
temp = temp == 'z' ? 'a' : (char) (temp + 1);
// 변환한 문자가 skip 문자열에 포함되어 있지 않다면 인덱스 증가
if (!skip.contains(String.valueOf(temp))) {
idx += 1;
}
}
answer.append(temp);
}
return answer.toString();
}
}
Share article