서울에서 김서방 찾기

ccy·2022년 1월 17일
0

알고리즘(JS)

목록 보기
18/31

첫번째 문제풀이

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}}
이다..

지금은 정답을 맞추면서 문제 해결능력을 기르려고 하기때문에 넘어가지만, 만약에 김서방들이 많으면 어떻게 되나 궁금하다, 시간나면 코드 한번 짜보는 연습을 해보면 좋을것 같다.

profile
개발배우는중

0개의 댓글