첫번째 문제풀이
function solution(seoul) {
let answer = "";
for(let i =0;i<seoul.length;i++){
let getIndex = seoul.indexOf(seoul[i])
if(seoul[i].includes("Kim")){
return `김서방은 ${getIndex}에 있다`;
}
}
return `김서방은 ${answer}에 있다`;
}
//solution(["Jane", "Kim","Park","Choi"])
solution(["Jane","Park","Choi","Kim"])
//solution(["Jane","Park","Choi","John","Kim"])
정말 바보같은 코드 1
// i의 횟수 와 getIndex에 설정한 seoul.indexOf(seoul[i]) 는 사실 같은 index를 가르킨다. console.log(i) let getIndex = seoul.indexOf(seoul[i]) console.log(getIndex) //이것은 내가 indexOf()라는 메서드의 개념을 이해하지못하고 사용했기 떄문에 발생한 문제이다..
indexOf 는 기본적으로 배열에 들어가서 str.length만큼 돌기 때문에 마치 for loop에서 i를 한것와 같은 개념이다.
정말 바보같은 코드2
내가 메서드를 알고있다고 해서 무조건 그 메서드를 고집할 필요는 없다.!
function solution(seoul) {
let idx;
for (let i = 0; i < seoul.length; i++) {
//includes를 사용 안했어도 아래 부호 === "Kim" 만해도 사실 아무 문제가 없다.
if (seoul[i] === "Kim") {
idx = i;
}
}
return `Kim is at ${idx}`
}
solution(["Jane","Park","Choi","Kim"])
사실 제일 간단한 코드는
function solution(seoul){
let answer = “”
const idx = seoul.indexOf(“Kim”)
return ‘kim is at ${idx}’
}
이다..
지금은 정답을 맞추면서 문제 해결능력을 기르려고 하기때문에 넘어가지만, 만약에 김서방들이 많으면 어떻게 되나 궁금하다, 시간나면 코드 한번 짜보는 연습을 해보면 좋을것 같다.