[프로그래머스]숫자 찾기
숫자 찾기
문제 설명
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < num < 1,000,000
- 0 ≤ k < 10
- num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
입출력 예
num | k | result |
---|---|---|
29183 | 1 | 3 |
232443 | 4 | 4 |
123456 | 7 | -1 |
입출력 예 설명
입출력 예 #1
- 29183에서 1은 3번째에 있습니다.
입출력 예 #2
- 232443에서 4는 4번째에 처음 등장합니다.
입출력 예 #3
- 123456에 7은 없으므로 -1을 return 합니다.
나의 풀이 코드
import java.util.*;
class Solution {
public int solution(int num, int k) {
String str = String.valueOf(num);
System.out.println(str);
String[] strArr = str.split("");
ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArr));
int index = list.indexOf(String.valueOf(k));
if(index!=-1){
++index;
}
return index;
}
}
정수->스트링->스플릿->리스트->리스트.indexOf로 풀었다.
배운점
class Solution {
public int solution(int num, int k) {
return ("-" + num).indexOf(String.valueOf(k));
}
}
다른사람이 푼 코드이다.
indexOf 함수의 특성을 활용하여 간단히 푼 모습이다.
앞에 “-“가 왜 붙어있을까? -1과 관련이 있을까 생각했는데 그게 아니고 “-“를 붙여줌으로써 1번째 인덱스부터 세도록 하고, num자체를 문자열로 바꾸것이다.
Leave a comment