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


문제 설명

정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 0 < num < 1,000,000
  • 0 ≤ k < 10
  • num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.

입출력 예

numkresult
2918313
23244344
1234567-1

입출력 예 설명

입출력 예 #1

  • 29183에서 1은 3번째에 있습니다.

입출력 예 #2

  • 232443에서 4는 4번째에 처음 등장합니다.

입출력 예 #3

  • 123456에 7은 없으므로 -1을 return 합니다.

나의 풀이

function solution(num, k) {
  var answer = num.toString();
  var result = answer.includes(k) ? answer.indexOf(k) + 1 : -1;
  return result;
}

나의 두번째 풀이(Code Refactoring)

function solution(num, k) {
  let result = num
    .toString()
    .split("")
    .findIndex((v) => v.includes(k));
  return result !== -1 ? result + 1 : -1;
}

// findIndex로 해당하는 인덱스의 첫번째 값을 찾아내고 true값은 인덱스값의 +1 , 그렇지 않으면 -1 반환

참고 할 만한 다른 사람의 코드

function solution(num, k) {
  return (
    num
      .toString()
      .split("")
      .map((el) => Number(el))
      .indexOf(k) + 1 || -1
  );
}
// k가 존재 하지 않으면 -1 반환 ,