문제 및 제한사항
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
**제한사항**
0 < num < 1,000,000
0 ≤ k < 10
num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
풀이 방법
풀이 방법은 2가지다.
1) if문
num을 string으로 바꿔준 뒤, k가 있을 인덱스를 indexOf로 찾아낸다.
문제는 인덱스는 0번부터 시작하지만 실제 문자열 num은 1번부터 시작하므로 인덱스에 +1을 해주어야 한다.
그런데 이렇게 하면 해당 인덱스가 없을 때 -1이 나오는 경우는 0이 된다.
따라서 조건문으로 -1이라면 그대로 리턴될 수 있게 추가해주어야 한다.
2) includes
사실 1번이랑 큰 차이는 없다.
똑같이 문자열로 바꿔준 후, includes로 k가 있는지 없는지 찾아낸 다음 indexOf(k)에 +1을 해주었다.
그렇지 않을 경우에 -1로 그대로 리턴되게 해준다.
코드
function solution(num, k) {
let str = num.toString();
let ind = str.indexOf(k)
if (ind === -1) {
return ind
} else {
return ind+1
}
}
function solution(num, k) {
let str = num.toString();
if (str.includes(k)) {
return str.indexOf(k) + 1
} else {
return -1
}
}
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 중복된 문자 제거 (0) | 2023.03.28 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 문자열 정렬하기 (2) (0) | 2023.03.28 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 약수 구하기 (0) | 2023.03.27 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 369게임 (0) | 2023.03.27 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 피자 나눠 먹기(2) (0) | 2023.03.27 |