본문 바로가기

■ 프로그래밍/알고리즘

[JS] 문자의 첫번째 위치 반환하기

[ 문제 ] 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