-
#AIL_23.11.15 // Programmers_서울에서 김서방 찾기AIL( Algorithm I Learned) 2023. 11. 15. 21:24
## AIL_서울에서 김서방 찾기
***문제 설명
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
***제한 사항
seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.
***입출력 예seoul return ["Jane", "Kim"] "김서방은 1에 있다"
## solution.JavaScript
1. 문제의 접근 방식
주어진 문제는 배열 `seoul`에서 "Kim"의 위치를 찾아서 그 위치를 문자열에 포함하여 반환하는 것입니다. 배열 `seoul`에서 "Kim"은 오직 한 번만 나타난다고 가정합니다.
2. 문제풀이
function solution(seoul) { let i = seoul.indexOf("Kim"); return `김서방은 ${i}에 있다`; } /* 테스트 1 입력값 〉 ["Jane", "Kim"] 기댓값 〉 "김서방은 1에 있다" 실행 결과 〉 테스트를 통과하였습니다. */
1. `indexOf()` 메서드를 사용하여 "Kim"이라는 문자열이 배열 `seoul`에서 처음 등장하는 인덱스를 찾습니다.
- `indexOf()` 메서드는 배열에서 지정된 요소의 인덱스를 반환합니다.
- `"Kim"` 문자열이 `seoul`에서 발견되면 해당 인덱스가 반환됩니다.
2. 반환된 인덱스를 활용하여 원하는 출력 형식인 `"김서방은 x에 있다"` 문자열을 생성합니다.
- 찾은 인덱스 값을 활용하여 해당 위치를 문자열에 포함시킵니다.
3. 다른사람의 문제풀이 및 접근방식 분석
const solution = (arr) => `김서방은 ${arr.findIndex(s => s === 'Kim')}에 있다`; /* 테스트 1 입력값 〉 ["Jane", "Kim"] 기댓값 〉 "김서방은 1에 있다" 실행 결과 〉 테스트를 통과하였습니다. */
1. `findIndex()` 메서드를 활용하여 배열 `arr`에서 조건을 만족하는 첫 번째 요소의 인덱스를 찾습니다.
- `findIndex()` 메서드는 주어진 함수의 조건을 만족하는 배열의 첫 번째 요소의 인덱스를 반환합니다.
- 주어진 코드에서는 `s === 'Kim'` 조건을 사용하여 "Kim"이라는 요소를 찾습니다.
2. 찾은 인덱스를 활용하여 `"김서방은 x에 있다"` 형태의 문자열을 생성합니다.
- `findIndex()` 메서드에서 찾은 인덱스를 활용하여 문자열 템플릿 리터럴을 이용해 원하는 형식으로 문자열을 만듭니다.
코드에서 사용되는 화살표 함수 `(arr) => ...`은 ES6 화살표 함수 표현식입니다. 이 함수는 `arr`이라는 배열을 받아 `findIndex()` 메서드를 사용하여 "Kim" 요소를 찾고 해당 요소의 인덱스를 활용하여 문자열을 반환합니다.
# indexOf()와 findIndex() 적용 시점
`indexOf()`는 단순히 특정 요소의 인덱스를 찾을 때 사용됩니다. 특정 값이 배열 내에 있는지 여부를 확인하고자 할 때 유용합니다.
`findIndex()`는 더 복잡한 조건에 따라 배열 요소의 인덱스를 찾을 때 사용됩니다. 주어진 조건에 따라 배열을 탐색하고 해당 조건을 만족하는 첫 번째 요소의 인덱스를 반환합니다.
'AIL( Algorithm I Learned)' 카테고리의 다른 글
#AIL_23.11.17 // Programmers_나머지가 1이 되는 수 찾기 (0) 2023.11.17 #AIL_23.11.16 // Programmers_약수의 합 (0) 2023.11.16 #AIL_23.11.14 // Programmers_정수 내림차순으로 배치하기 (1) 2023.11.14 #AIL_23.11.13 // Programmers_문자열 정수로 바꾸기 (1) 2023.11.13 #AIL_23.11.10 // Programmers_자연수 뒤집어 배열로 만들기 (0) 2023.11.10