https://school.programmers.co.kr/learn/courses/30/lessons/120904
문제
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return 하고 없으면 -1을 return 하도록 solution 함수를 완성해 보세요.
제한사항
0 < num < 1,000,000
0 ≤ k < 10
num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
풀이
class Solution {
fun solution(num: Int, k: Int): Int {
val kToChar = '0' + k
num.toString().forEachIndexed { index, c ->
if (c == kToChar) return index+1
}
return -1
}
}
- 각 num 을 10으로 나누고 10으로 나눈 나머지를 k와 비교하는 방법을 사용할 수도 있지만 해당방법은 의외로 많은 연산을 필요로 합니다. 그렇기 때문에 이렇게 숫자를 찾고 싶다면 찾고 싶은 숫자를 문자형태로 바꿔주고 num을 문자열로 바꿔 해당 문자열을 순환하여 문자값을 비교하는 방법이 빠르고 좋습니다.
결과
'코틀린 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 머쓱이보다 키 큰 사람 (Kotlin) (0) | 2023.07.28 |
---|---|
[프로그래머스] - 문자열 정렬하기 (2) (Kotlin) (0) | 2023.07.27 |
[프로그래머스] - 배열의 유사도 (Kotlin) (0) | 2023.07.27 |
[프로그래머스] - 인덱스 바꾸기 (1) (Kotlin) (0) | 2023.07.27 |
[프로그래머스] - 대문자와 소문자 (Kotlin) (0) | 2023.07.27 |