본문 바로가기
  • 신철수 쌤의 국어 지문 읽기

    함수는 요술 항아리! 어떤 함수식으로 된 항아리지?

    ‘우리글’이라는 검색어를 … 18글자의 대상 문자열에서 검색한다고 가정해 보자. 가장 간단히 떠올릴 수 있는 방법은 ‘우리글’이 3글자이므로 대상 문자열을 3글자씩 잘라 1글자씩 비교하는 것이다. … 하나의 비교 대상을 확인하기 위해서는 3글자를 각각 비교해야 하므로 총 16×3번 비교를 하게 될 것이다.검색어와 비교 대상을 … 3글자씩 한 번에 비교할 수 있다면 그만큼 비교 횟수가 줄어들게 되어 검색 시간이 줄어들 것이다. 이를 위해 각각의 문자열에 특정 값을 생성하는 함수를 설정할 수 있다. 이런 함수를 해시 함수라고 하고, 어떤 문자열에 대해 해시 함수가 생성한 값을 해시값이라고 한다. 만일 해시 함수가 입력 가능한 문자열에 대해 모두 다른 해시값을 생성한다면 검색어의 해시값과 비교 대상의 해시값을 비교하여 두 문자열이 일치함을 단번에 판단할 수 있다. … 각 비교 대상에서 문자열 비교는 1번의 해시값 비교로 줄어들기 때문에 전체 비교 횟수는 감소하게 된다. 물론 해시값을 생성하는 해시 함수의 연산이 추가되지만 추가되는 연산 시간이 각 글자 단위의 비교에 필요한 연산 시간보다 짧다면 전체적인 검색 시간은 단축될 수 있다.11. [A]를 이해한 내용으로 적절한 것은?① 검색어의 길이가 짧아진다면 비교 대상의 개수가 줄어들어 해시값 비교 횟수가 증가할 수 있겠군.② 대상 문자열에 반복되는 글자가 많다면 해시값이 작아져서 해시 함수의 연산 시간이 단축될 수 있겠군.③ 검색어보다 긴 대상 문자열의 개수가 늘어난다면 비교 대상이 늘어나 해시값 비교 횟수가 증가할 수 있겠군.④ 대상 문자열이 1개일 경우 검색어의 길이가 짧아진다