[ 문제 ] get_find 함수 작성하기
더보기
문자와 문자열이 주어졌을때, "get_find" 함수는 주어진 문자열에서 주어진 문자가 나타나는 첫번째 위치를 반환합니다.
Notes:
문자열의 첫번째 문자는 인덱스 값 0 을 가집니다.
만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환해야 합니다.
만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.
indexOf 함수를 사용하지 마세요.
const output = get_find('a', 'I am a hacker')
console.log(output) // --> 2
[ 풀이 ]
2020.04.05
function get_find(str, sentence) {
// console.log(sentence.includes(str));
if (sentence.includes(str) === true) {
for (var i = 0; i < sentence.length; i++) {
// console.log(i);
if (sentence[i] === str) {
return i
}
}
} else {
return -1;
}
}
get_find('a', 'I am a hacker');
indexOf를 사용하면 안되기 때문에 고민을 좀 했다.
우선 includes로 str값이 있다면 for문을 돌리고, 없다면 -1을 반환했다.
for문은 문장의 길이만큼 반복하고 문장의 i번째에 str가 있다면 i번째 값을 반환했다.
근데 더 쉽게 풀 수 있었다...
function get_find(str, sentence) {
for (let i = 0; i < sentence.length; i++) {
if (sentence[i] === str) {
return i;
}
}
return -1;
}
굳이 해당 값이 있느냐 없느냐로 판단할 필요 없이, 만약 for문에서 i값을 못 찾으면 -1이 반환되게 했다. (훨씬 간단하다..ㅠㅠ)
'■ 프로그래밍 > 알고리즘' 카테고리의 다른 글
[JS] Isograms (0) | 2020.11.06 |
---|---|
[JS] 가장 넓은 면적 구하기 (0) | 2020.04.17 |
[JS] 특정 수가 나오는 index 찾기 (0) | 2020.04.07 |
[JS] 가장 긴 단어 찾기 (0) | 2020.04.04 |
[JS] Object를 활용한 성적 가져오기 (0) | 2020.03.31 |