let arr = [9,11,4,14]
const twoSum = (arr, target) => {
let answer = []
for (i = 0; i < arr.length; i++) {
if (arr.indexOf(target - arr[i]) > -1) {
answer.push(i)
answer.push(arr.indexOf(target - arr[i]))
}
} return answer.slice(0, 2);
}
빈 배열을 두고 target에서 arr[i]를 빼준 값을 indexOf를 이용해서 만족하는 결과를
배열에 push해줬다. 이렇게 하면 배열 길이 4가 나와서 첫 두 요소를 slice 해줬음.
slice를 이용 안할 수 있을까 고민 후 return을 if문 블록 내에 위치시키고
조건을 만족하면 바로 반환하게 하였음.
const twoSum = (arr, target) => {
for (i = 0; i < arr.length; i++) {
let answer = [];
if (arr.indexOf(target - arr[i]) > -1) {
answer.push(i)
answer.push(arr.indexOf(target - arr[i]))
return answer;
}
}
}
결과는 성공.
const twoSum = (arr, target) => {
for (i = 0; i < arr.length; i++) {
if (arr.indexOf(target - arr[i]) > -1) {
let result = [i, arr.indexOf(target - arr[i])];
return result;
}
}
}
그냥 빈 배열에 push하지 않고 바로 해당 index들을 배열에 넣어서 result로 반환.
가장 깔끔
반성 :
아직 메서드를 활용하는게 잘 떠오르지 않는다. 여러 메서드를 자주 쳐보면서 복습하는 시간도 가져야겠다.