😈 숫자 찾기
📗 문제 설명
정수 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 합니다.
💎나의 풀이
문제가 간단해 보이지만 함정이 있다.
우선 풀어보자.
숫자를 찾으려면 우선 매개변수를 string 배열로 만들어 주었다.
그안에서 k를 찾으면 되니 indexOf를 사용하여 k를 찾아 주었다.
문제에선 index가 아닌 자릿수를 원하기 때문에 +1을 해주었다
const solution = (num,k) => [...num+''].indexOf(k+'')+1
근데 이게 뭐람 indexOf()는 찾을 값이 없으면 -1을 출력하는게 맞지만
우리는 +1을 해주었기에 0이 출력되었다. 함정이었다.
0 === false 니까 || -1 을 해주어 0이라면 -1출력하게 했다.
const solution = (num,k) => [...num+''].indexOf(k+'')+1 || -1
다른 방법도 있겠지만... 난 짧은 걸 선호한다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 😈] 모스 부호 (1) | 2023.10.17 |
---|---|
[프로그래머스 😈] JavaScript 중복된 문자 제거 (0) | 2023.10.17 |
[프로그래머스 😈] JavaScript 약수 구하기 (0) | 2023.10.17 |
[프로그래머스 😈] JavaScript 배열 회전시키기 (0) | 2023.10.17 |
[프로그래머스 😈] JavaScript 외계행성의 나이 (2) | 2023.10.17 |