👀 문제
https://school.programmers.co.kr/learn/courses/30/lessons/155652
👊 도전
1. 설계
- 아스키코드를 이용해 구현
2. 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
fun solution(s: String, skip: String, index: Int): String {
var answer: String = ""
val set = skip.toHashSet()
s.forEach { char ->
var count = 0
var nextChar = char
repeat(index) {
count++
nextChar = (nextChar.code + 1).toChar()
if (nextChar.code > 'z'.code) {
nextChar = (nextChar.code - 'z'.code + 'a'.code - 1).toChar()
}
while (set.contains(nextChar)) {
nextChar = (nextChar.code + 1).toChar()
if (nextChar.code > 'z'.code) {
nextChar = (nextChar.code - 'z'.code + 'a'.code - 1).toChar()
}
}
}
answer += nextChar
}
return answer
}
}
3. 결과
🤟 성공 🤟
4. 설명
- 아스키코드를 이용해 알파벳을 구한다
- 아스키코드는 Char.code로 불러올 수 있고, 다음 인덱스 체크를 위해 +1한다.
- 마지막 알파벳인 ‘z’를 넘어갈 경우 ‘a’로 돌려주는 코드가 필요하다.
- 제외할 값은 HashSet으로 변환하여 체크한다.