본문 바로가기
개발노트/프로그래머스

프로그래머스 숫자찾기 코틀린

by 시계속세상은아직돌아가는중 2023. 8. 2.

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을 해줬다.