🗒 문제


📝 나의 문제풀이
class Solution {
fun solution(num: Int, k: Int): Int {
return num.toString().indexOf(k.toString()).let{ if(it >= 0) it + 1 else -1 }
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.
class Solution {
fun solution(num: Int, k: Int) = "-$num".indexOf(k.toString())
}
🖊 문제 풀이 시 알면 좋을 것
indexOf()
- 용도: 문자열에서 특정 문자 또는 문자열이 처음 등장하는 위치(0-based) 반환
- 특징: 없으면 -1 반환
val str = "29183"
println(str.indexOf("1")) // 2
println(str.indexOf("5")) // -1
이 문제에서는 k 숫자가 몇 번째 자리인지 확인할 때 사용
.let { ... }
- 용도: 임시 변수(it)를 사용해 값 가공 후 결과 반환
- 특징: 변수 선언 없이 연속 처리 가능
val idx = "29183".indexOf("1")
val result = idx.let { if (it >= 0) it + 1 else -1 }
println(result) // 3
- 여기서 it = indexOf 결과
- 0-based → 1-based index로 바꾸거나, 없는 경우 -1 처리 가능
1-based index 처리 방법
- 문자열 인덱스는 기본적으로 0부터 시작
- 문제 요구가 1부터 시작이면 변환 필요
val idx = "29183".indexOf("1") // 2
val oneBased = idx + 1 // 3
다른 트릭: 문자열 앞에 - 붙이면 indexOf 결과가 자동으로 1-based
val idx = "-29183".indexOf("1") // 3반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 외계행성의 나이 (0) | 2025.12.21 |
|---|---|
| [프로그래머스] 대문자와 소문자 (0) | 2025.12.21 |
| [프로그래머스] 인덱스 바꾸기 (0) | 2025.12.21 |
| [프로그래머스] 암호 해독 (0) | 2025.12.21 |
| [프로그래머스] 문자열 정렬하기 (1) (0) | 2025.12.21 |