[프로그래머스] Lv.0 숫자 찾기 JavaScript

Janet·2023년 4월 10일
0

Algorithm

목록 보기
133/314

문제 설명

정수 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 합니다.

문제풀이

✅ 답안 #1 : 정수로 이루어진 num을 배열 형태로 변환하기 위해 문자열 형태의 배열로 복사 […String(num)]하고 String(k)가 포함되어 있다면 해당 배열의 indexOf(String(k)) + 1을 반환하고 아니라면 -1을 반환한다.

function solution(num, k) {
  return [...String(num)].includes(String(k))
    ? [...String(num)].indexOf(String(k)) + 1
    : -1;
}

✅ 답안 #2: 문자열 형태의 배열을 map() 함수를 통해 숫자 타입의 배열로 바꿔 준 후, indexOf(k) + 1을 리턴하거나 혹은(indexOf(k)가 없는 값이라면) -1을 리턴한다.

function solution(num, k) {
  return [...String(num)].map((v) => Number(v)).indexOf(k) + 1 || -1;
}
profile
😸

0개의 댓글