문제는 string배열 seoul이라는 배열에 'Kim'을 찾아 그 값을 구하는 것이다.
처음에는 for을 이용해서
function solution(seoul) {
answer = ' ';
for (i = 0; i = seoul.length; i++) {
if ( i == 'Kim) {
answer = '김서방은 ' + i ' +'에 있다';
}
}
return answer;
}
로 생각했었다. 그런데 length는 길이를 구하는거지 길이를 구한다면 jane 다음에 kim이 오면 4가 나올 것 같았다.
예제를 생각하면 1이 나오는게 맞아서 이리저리 찾다가 indexOf를 찾았다.
문자열에서 문자(열) 찾기
문자열, 즉 string 타입 안에서 특정 문자 또는 문자열의 위치를 찾아주는 함수
위치라고 하면 position 을 가리키는 것이다
String.indexOf()
주어진 문자열 str 앞에서붙 (index: 0) 지정한 searchValue가 처음부터
발견되는 위치의 index 반환한다
문법 (syntax)
*str*.indexOf(*searchValue*[, *fromIndex*])
매개변수 (Parameter)
-searchValue
찾고자 하는 문자 또는 문자열 (대소문자 중요) 정확한 string 형식이 아니라면
undefined로 간주하고 이것을 기준 문자열 str에서 찾아볼 것이다
integer, 즉 숫자 형식으로 검색을 시작할 index로 기준을 지정해줄 수 있다
만약 이값이 0보다 낮고(음수) 그리고 str.length 문자열의 길이보다 높다면, 본 함수는
단순히 str 전체를 검색할 것이다
반환 (return)
str에서 searchValue가 0부터 시작하여 처음부터 검색되는 index 값을 반환한다
만약, searchValue가 존재하지 않는다면 -1을 반환한다
indexOf를 이용하면 jane 을 넘어서 내가 찾는 문자열과 맞다면 그 index가 나올거라 생각했다. 'jane' = 0 'kim' = 1; 그래서 indexOf를 이용해서 풀었다.
function solution(seoul) {
return '김서방은 ' + seoul.indexOf('kim') + '에 있다';
}
로 해서 나타났다.
보완해야 될 점은 function 함수 다음에 solution 보다는 김서방의 위치를 찾으니까 function searchKim(seoul) 이 날 것 같다.
또한 문제를 풀고 다른 사람들이 한 것도 볼 수 있었는데 length를 이용해서 풀기도 했었다. 처음 부분은 나랑 같았지만 끝 부분이 달라서 그 부분을 좀 더 공부해야겠다.
지금 머리속에 해메이는 것인 length가 길이인데, "jane", "kim"을 넣으면 k자리가 5라고 생각되서 안될텐데 다른 사람들이 처리한 부분이 좀 의아하게 생각됐다. 부족한 부분을 좀 더 공부하고 채워 넣어야겠다.
length 를 이용해서 풀이
function solution(seoul) {
for(let i = 0; i <= seoul.length; i++) {
if (seoul[i] === 'Kim') {
return '김서방은 ' + i + '에 있다';
}
}
}
'jane', 'Kim' 을 따로 입력하면 Kim으로 넘어가면 index가 0으로 초기화 되서 1이 된다면 length가 길이이기에 kim전체니까 정답에 3으로 나올거라 예상해서 안된다고 생각되는데 1이 되서 정답처리가 됐다. 음... 더 공부하자
!!!!
배열을 선언 할 때 arr = {'a', 'b', 'c'} 를 선언한다면 index는 length - 1 이다. 0 1 2 라면 길이는 1 2 3 이다.
내가 착각했던 부분이 따옴표로 감싸주면 그것 자체가 배열 하나다. java나 c에서 말하는 char이다 string이라는 개념이 아니라 그래서 jane = 0번째 배열, Kim = 1번째 배열 그래서 length를 구할 때 길이가 2이기 때문에 index인 1이 나오는 것이다.
수정//
arr = ['jane', 'kim'] ,로 처리되서 jane은 index = 0; kim 은 index = 1;
'알고리즘문제' 카테고리의 다른 글
프로그래머스 - 행렬의 덧셈 (0) | 2021.09.20 |
---|---|
프로그래머스 - 문자열 내림차순으로 배치하기 (0) | 2021.09.10 |
수박수박수 문제 (0) | 2021.05.17 |
가운데 글자 가져오기 (0) | 2021.05.16 |
Codeup 1045문제 (0) | 2021.04.28 |