-
항해 99 - 서울에서 김서방 찾기알고리즘 공부/JavaScript 문제 2023. 4. 16. 21:50
[ 문제 ]
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요.
seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
- seoul은 길이 1 이상, 1000 이하인 배열입니다.
- seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
- "Kim"은 반드시 seoul 안에 포함되어 있습니다.
[ Input / Output 예시 ]
Input Output ["Jane", "Kim"] "김서방은 1에 있다"
[ 풀이 ]
풀이 (1)
(내 풀이)
"Kim"은 오직 한 번만 나타나므로 .indexOf() 메소드를 사용하여 인덱스를 반환했다.
풀이 (2)
(프로그래머스 풀이)
.indexOf() 만 사용할 수 있을 줄 알았는데 ES5 문법이라고 한다.
ES6 문법으로 사용하는 메소드는 .findIndex() 메소드이다.
.findIndex() 도 .indexOf() 처럼 최초의 인덱스만을 반환하지만 콜백 함수를 이용하여 조건을 넣어줄 수 있다는 점이 차이점이다.
.findIndex()와 함께 .find() 도 같이 ES6문법으로 등장하였으니 둘다 공부해야겠다.
[ 코드 ]
// 풀이 (1) // 오직 한 번만 나타나므로 .indexOf 메소드를 사용하여 인덱스의 위치를 찾음 const solution1 = function (seoul) { return `김서방은 ${seoul.indexOf('Kim')}에 있다`; } console.log(solution1(["Jane", "Kim"])) // 김서방은 1에 있다 // 풀이 (2) // .findIndex 메소드도 .indexOf 메소드 처럼 최초의 인덱스 위치를 찾아준다. // 단, 각 배열의 조건을 콜백 함수를 이용하여 설정한다. // .find, .findIndex는 ES6 문법으로 좀더 일반적으로 사용하므로 알아두자. const solution2 = function (seoul) { return `김서방은 ${seoul.findIndex((s) => s==='Kim')}에 있다`; } console.log(solution2(["Jane", "Kim"])) // 김서방은 1에 있다
'알고리즘 공부 > JavaScript 문제' 카테고리의 다른 글
항해 99 - 수박수박수박수박수박수? (1) 2023.04.17 항해 99 - 문자열 다루기 기본 (0) 2023.04.16 항해 99 - 문자열 내 p와 y의 개수 (0) 2023.04.16 항해 99 - 내적 (0) 2023.04.16 항해 99 - 나누어 떨어지는 숫자 배열 (0) 2023.04.16