728x90
문제
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
해결 과정
function solution(num, k) {
let answer = -1;
let number = String(num);
for(let i = 0; i < number.length; i++) {
if (Number(number[i])===k) {
answer = i + 1;
return answer;
}
}
return answer;
}
number를 문자열로 바꾸기 위해서 String(number)으로 감싼다음 풀어줬다. 그리고 그 다음 k는 숫자임으로 Number로 감싸서 풀어줬다.
새롭게 알게된 점
다른 사람의 풀이를 봤더니 대다수가 indexOf를 활용해 풀었다.
indexOf는 호출한 String 객체에서 주어진 값과 일치하는 첫 번재 인덱스를 반환한다. 일치하는 값이 없으면 -1을 반환한다.
function solution(num, k) {
return num.toString().indexOf(k) + 1 || -1;
}
num에 toString()을 활용한다음 indexOf(찾고자하는 문자)를 썼다. 만일 존재하면 +1을하고 존재하지 않으면 -1을 썼다.
toString하고 String의 차이점
toString() | String() | |
정의 | 객체의 toString()메서드는 객체를 나타내는 문자열을 반환 | String()함수는 인수로 전달된 문자열로 변환하고 반환 |
사용 가능대상 | 모든 데이터 타입에서 사용 가능 (단, null과 undefined는 제외) |
모든 데이터 타입에서 사용 가능 |
기본 동작 | 객체의 toString() 메서드를 호출 | 값을 문자열로 변 |
결론 | 객체의 메서드를 활용하여 특정 동작을 하고 싶을때 사용 | 안정성이 중요할 때 사용 |
728x90
'⌨️ 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 계산하기 ➕ | JS (1) | 2024.11.25 |
---|---|
[프로그래머스] 편지 ✉️ | JS (0) | 2024.11.25 |
[프로그래머스] 약수 구하기 ➗ | JS (1) | 2024.11.25 |
[프로그래머스] 배열 원소의 길이 | JS (0) | 2024.08.07 |
[프로그래머스] 중앙값 구하기 (1) | 2024.02.14 |