https://school.programmers.co.kr/learn/courses/30/lessons/120904
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 첫 번째 아이디어
fun main(){
val num = 22443
var nums = num.toString()
var le = nums.length
var an = 0
var k = readLine()!!.toInt()
if (k <= le){
an = nums[le-k].toString().toInt()
}else{
an = -1
}
println(an)
}
첫 번째 아이디어로는 인덱스 값에 접근하는 방식을 사용했다.
이 것은 잘 작동하는 것 처럼 보이나, 자릿수가 더 많아지면 오류가 발생했다.
그런데! 내가 문제 자체를 잘못 이해하고있었다.
나는 k번째 인덱스의 숫자를 찾고 싶었는데, 문제에서 물어보는 정답은 k는 몇 번째 자릿수인가였다. 이럴수가!
이에 튜터님에게 질문하며 인덱스에 접근하는 방식에 대해 질문했는데, indexof를 사용하라고 조언해주셨다.
class Solution {
fun solution(num: Int, k: Int): Int {
val answer = num.toString().indexOf(k.toString())
return if(answer >=0){
answer +1
}else{
-1
}
}
}
해서 indexof로 깎고 깎아서 나온 형태다.
indexOf는 해당하는 값의 인덱스를 반환하는데, 자릿수를 나타내가 위해 +1을 해줬다.
'개발노트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 직사각형 넓이 구하기 코틀린 (0) | 2023.08.04 |
---|---|
프로그래머스 문자 정렬하기(2) 코틀린 (0) | 2023.08.03 |
배열의 유사도 코틀린 (0) | 2023.07.31 |
인덱스 바꾸기 코틀린 (0) | 2023.07.31 |
대문자와와 소문자 코틀린 (0) | 2023.07.31 |