less than 1 minute read

숫자 찾기

문제 설명

정수 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