서울에서 김서방 찾기

문제

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

제한사항

  • seoul은 길이 1 이상, 1000 이하인 배열입니다.
  • seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
  • “Kim”은 반드시 seoul 안에 포함되어 있습니다.

풀이방향

  • 배열안에 Kim 이 있는 위치를 찾음
  • 김서방은 x에 있다를 return

풀이

findKim.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function findKim(seoul) {
let answer = "";
let findPersonName = "Kim";

for (let i = 0; i < seoul.length; i++) {
if (seoul[i] === findPersonName) {
answer = `김서방은 ${i}에 있다`;
}
}

return answer;
}

export { findKim };
findKim.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { findKim } from "../src/findKim";

describe('findKim', () => {
it('should return "김서방은 1에 있다"', () => {
expect(findKim(["Jane", "Kim"])).toBe("김서방은 1에 있다");
});
it('should return "김서방은 0에 있다"', () => {
expect(findKim(["Kim"])).toBe("김서방은 0에 있다");
});

it('should return "김서방은 2에 있다"', () => {
expect(findKim(["Jane", "Lee", "Kim"])).toBe("김서방은 2에 있다");
});
});

출처

  • 프로그래머스

다른 풀이

findKim.js
1
2
3
4
5
6
7
8
9
10
function findKim(seoul) {
let answer = "";
let findPersonName = "Kim";

answer = `김서방은 ${seoul.indexOf(findPersonName)}에 있다`;

return answer;
}

export { findKim };