Home

[Algorithm JavaScript] Level1. 서울에서 김서방 찾기(index 활용하기)

[Algorithm JavaScript] Level1. 서울에서 김서방 찾기(index 활용하기)

Question

Source https://programmers.co.kr/learn/challenge_codes/110

findKim 함수(메소드)는 String 형 배열 seoul 을 매개변수로 받습니다.

seoul 의 element 중 Kim 의 위치 x 를 찾아, 김서방은 x 에 있다는 String 을 반환하세요. seoul 에 Kim 은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

My solution

function findKim(seoul) {
  var idx;
  for (let item of seoul) if (item === 'Kim') idx = seoul.indexOf(item);
  return '김서방은 ' + idx + '에 있다';
}

// 실행을 위한 테스트코드입니다.
console.log(findKim(['Queen', 'Tod', 'Kim']));

Array 의 index 를 활용해서 푸는 문제다. seoul 배열의 for 루프를 돌아 “Kim”을 찾고 해당 인덱스를 idx 라는 변수에 대입한 후 리턴 값에 해당 변수를 활용해 닶을 구했다.

이전에 활용했던 for루프 if조건문의 블록 스코프의 내용이 한 줄일 경우 {}를 생략해도 된다는 점을 활용해 코드를 보기 깔끔하고 간결하게 짤 수 있었다. Array 의 프로토타입 메소드인 indexOf에 대한 설명은 이 링크를 참고하자.

Other Solutions

Best of Best

잘만 활용한다면 최소한으로도 충분하다 -쥘 베른,‘80 일간의 세계 일주’ 중에서

function findKim(seoul) {
  return `김서방은 ${seoul.indexOf('Kim')}에 있다`;
}

// 실행을 위한 테스트코드입니다.
console.log(findKim(['Queen', 'Tod', 'Kim']));

템플릿 코드''(백틱)를 활용해서 보다 간결하게 만들 수 있다. 사실 이 문제에서는 궂이 루프를 돌 필요가 없었다. “Kim”이라고 문제에 친절하게 위치를 찾을 문자열을 제시해 줬다. 때문에 위와 같이 바로 return 값을 템플릿코드로 indexOf를 활용해서 반환하면 깔끔하게 풀린다.

템플릿 코드를 바로 return 값에 활용한다는 점이 신선했다.

Published 17 Mar 2018

BK
BK

I'm front-end web developer, former brand marketer, interested in business-oriented and scalable development. Also, passionate marathoner.