문제를 하나씩 더 풀어나갈수록 모름에 끝이 없다!
사실 배열 탐색만 기깔나게 잘 해도 문제 반 이상은 더 빨리 풀 듯ㅎ
근데 문제 풀 때 맨날 쓰는 메서드만 쓰는 것 같다.
배열에는 무쟈게 많은 내장함수가 있다는 걸 알고는 있지만 막상 문제 풀 때 생각이 안나는 걸..?ㅎ_ㅎ
그래서 오늘은 배열 탐색과 관련된 자주 쓰이는 메서드 정리!
배열의 특정 요소를 찾고 그 Index를 retrun!
🧐 찾는 요소가 없으면 ?
return -1!
let arr = ['a', 'b', 'c', 'd', 'c'];
console.log(arr.findIndex(el => el == 'c')); // 2
console.log(arr.findIndex(el => el == 'f')); // -1
배열에서 지정된 요소를 찾을 수 있는 첫 번째 Index를 return!
🧐 찾는 요소가 없으면 ?
return -1!
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison')); // 1
// index 2 부터 탐색
console.log(beasts.indexOf('bison', 2)); // 4
console.log(beasts.indexOf('giraffe')); // -1
파라미터로 전달하는 함수를 만족하는 첫 번째 요소의 값을 retutn!
🧐 그런 요소가 없다면 ?
return undefined!
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10);
console.log(found); // 12
// 130이나 44는 12 나중에 판별하니까 제외!
정수 배열 array
가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
array의
길이 ≤ 100array
원소 ≤ 1,000array
에 중복된 숫자는 없습니다.array | result |
---|---|
[1, 8, 3] | [8, 1] |
[9, 10, 11, 8] | [11, 2] |
입출력 예 #1
입출력 예 #2
function solution(array) {
let max = Number.MIN_SAFE_INTEGER;
let index = 0;
array.filter((item,idx)=>{
if (item>max) {
max=item;
index=idx;
}
})
return [max, index];
}
function solution(array) {
return [Math.max(...array), array.indexOf(Math.max(...array))]
}
문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A
와 B
가 매개변수로 주어질 때, A
를 밀어서 B
가 될 수 있다면 몇 번 밀어야 하는지 횟수를 return하고 밀어서 B
가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
A
의 길이 = B
의 길이 < 100A
, B
는 알파벳 소문자로 이루어져 있습니다.A | B | result |
---|---|---|
"hello" | "ohell" | 1 |
"apple" | "elppa" | -1 |
입출력 예 #1
입출력 예 #2
function solution(A, B) {
let _A=A.split('')
// 애초에 같은 문자열일때 0 return 해야되는 거 나중에 알았다 ㅎㅅㅎ;
if (A===B) return 0
for(let i=0;i<=A.length;i++){
_A.unshift(_A.pop())
if(_A.join('')===B) return i+1
}
return -1;
}
//풀이 2 허거덩.....indexOf....!
let solution=(a,b)=>(b+b).indexOf(a)
Array.prototype.findIndex() - JavaScript | MDN