🗒 문제
📝 나의 문제풀이
class Solution {
fun solution(n_str: String): String {
val index = n_str.mapIndexedNotNull{i,v -> if(v != '0') i else null}.first()
return n_str.slice(index..n_str.length - 1)
}
}
📝 다른 사람의 문제 풀이
이번에는 다른 사람 문제 풀이를 봤는데 다양하게 신박한 풀이가 많아서 여러 개를 첨부해 보았다.
class Solution {
fun solution(n_str: String): String {
return n_str
.dropWhile { it == '0' }
}
}
class Solution {
fun solution(nStr: String) = nStr.toInt().toString()
}
class Solution {
fun solution(n_str: String) = n_str.trimStart('0')
}
🖊 문제 풀이 시 알면 좋을 것
mapIndexedNotNull
- (index, value)를 기반으로 변환 후, null이 아닌 값만 반환함.
val str = "00123"
val index = str.mapIndexedNotNull { i, v -> if (v != '0') i else null }.first()
println(index) // 2
slice
- 특정 인덱스 범위의 문자열을 잘라서 반환함.
- slice(start..end) 사용 시 end 인덱스까지 포함하여 문자를 추출함.
val str = "00123"
println(str.slice(2..str.length - 1)) // "123"
length
- length는 문자열의 길이(문자 개수)를 반환하는 속성임.
val str = "Hello"
println(str.length) // 5
*하지만 위 문제풀이에서는 str.length - 1을 사용했는데 이것보다는 str.lastIndex를 쓰는 게 가독성 면에서 좋을 것 같다.
lastIndex
- 문자열의 마지막 인덱스를 구하는 방법
val str = "Kotlin"
println(str.lastIndex) // 5
dropWhile
- 조건이 참인 동안 문자를 제거하고, 첫 번째로 조건을 만족하지 않는 문자부터 반환함.
val str = "00123"
println(str.dropWhile { it == '0' }) // "123"
toInt().toString()
- 숫자로 변환 후 다시 문자열로 변환하여, 숫자 앞의 불필요한 0을 자동 제거함
val str = "00123"
println(str.toInt().toString()) // "123"
trimStart
- 문자열 앞쪽에서 특정 문자를 제거함.
val str = "00123"
println(str.trimStart('0')) // "123"
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 문자열로 변환 (0) | 2025.02.10 |
---|---|
[프로그래머스] 두 수의 합 (0) | 2025.02.10 |
[프로그래머스] 문자열을 정수로 변환하기 (0) | 2025.02.06 |
[프로그래머스] 문자열 정수의 합 (0) | 2025.02.06 |
[프로그래머스] 전국 대회 선발 고사 (0) | 2025.02.06 |