본문 바로가기

IT/프로그래머스

[프로그래머스] 숫자 찾기 - Java

반응형

 

 

 

 

문제

 

 

 

 

 

 

풀이

num의 값들을 쪼개서 배열에 넣어준 뒤, 배열에서 k와 같은 index값을 return 해준다.

 

 

 

 

Stream.of(String.valueOf(num).split("")).mapToInt(Integer::parseInt).toArray();

자릿수 마다 쪼개서 int 배열에 넣기 위해서. num을 String형으로 바꾼 후 split을 통해 쪼개 넣고, 다시 int형 Array로 바꾸어 주었다.

 

 

IntStream.range(0, arr.length).filter(i -> k == arr[i]).findFirst().orElse(-1)

arr배열 범위 안에서 k와 같은 값의 index를 반환하도록 하였고, 같은 값이 없으면 -1이 나오도록 하였다.

 

 

 

 

코드

import java.util.stream.Stream;
import java.util.stream.IntStream;
//import java.util.*; 만 쓰게 되면 프로그래머스에서는 에러가 뜸.. (eclipse에선 정상작동 되었다)

class Solution {
    public int solution(int num, int k) {
        int answer = 0;
        int[] arr = Stream.of(String.valueOf(num).split("")).mapToInt(Integer::parseInt).toArray();
        
        answer = (IntStream.range(0, arr.length).filter(i -> k == arr[i]).findFirst().orElse(-1) + 1);
        if(answer == 0){
            answer = -1;
        }
        
        return answer;
        
    }
}

 

 

 

반응형