class Solution {
fun solution(numLog: IntArray): String {
var answer = StringBuilder()
numLog.forEachIndexed{ i, _ ->
if(i == (numLog.size -1)) return answer.append("").toString()
when(numLog[i+1] - numLog[i]){
+1 -> answer.append("w")
-1 -> answer.append("s")
+10 -> answer.append("d")
-10 -> answer.append("a")
else -> answer.append("")
}
}
return answer.toString()
}
}
class Solution {
fun solution(numLog: IntArray): String {
return (1..numLog.lastIndex).map {
when (numLog[it] - numLog[it-1]) {
1 -> 'w'
-1 -> 's'
10 -> 'd'
else -> 'a'
}
}.joinToString("")
}
}
StringBuilder()
문자열을 효율적으로 생성하고 수정할 수 있는 클래스입니다. 일반적으로 문자열을 여러 번 연결할 때, StringBuilder를 사용하는 것이 더 성능이 좋습니다. 이는 문자열을 변경할 때마다 새로운 객체를 생성하는 대신, 내부 버퍼를 이용해 메모리 할당을 최소화하고 문자열을 변경할 수 있기 때문입니다.
append(): 문자열을 끝에 추가합니다.
insert(): 지정된 위치에 문자열을 삽입합니다.
delete(): 문자열의 특정 범위를 삭제합니다.
replace(): 특정 범위의 문자열을 다른 문자열로 교체합니다.
toString(): StringBuilder에 저장된 문자열을 일반 String으로 변환합니다.
fun main() {
// StringBuilder 객체 생성
val stringBuilder = StringBuilder()
stringBuilder.append("Hello")
stringBuilder.append(" ")
stringBuilder.append("World!")
// 최종 문자열 출력
println(stringBuilder.toString()) // 출력: Hello World!
}
lastIndex
map
map은 컬렉션(예: 리스트, 배열)의 각 요소를 변환하여 새로운 컬렉션을 생성하는 함수입니다. 각 요소에 대해 변환 작업을 하고, 그 결과로 새로운 리스트나 배열을 반환합니다.
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// 각 숫자에 2를 곱한 새로운 리스트 생성
val doubled = numbers.map { it * 2 }
println(doubled) // 출력: [2, 4, 6, 8, 10]
}
joinToString
fun main() {
val words = listOf("Kotlin", "is", "fun")
// 구분자 없이 리스트의 문자열을 합침
val sentence = words.joinToString(" ")
println(sentence) // 출력: Kotlin is fun
}