두치의 개발공부

BaekJoon_1543(문서 검색) 본문

알고리즘

BaekJoon_1543(문서 검색)

Du_chi 2022. 6. 23. 20:44

문제

https://www.acmicpc.net/problem/1543

 

1543번: 문서 검색

세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한

www.acmicpc.net

 

문제풀이

전체 문자열에서 찾으려는 문자를 찾아야 한다.

전체 문자열에서 index 0부터 시작하여 문자의 길이만큼 잘라서 찾으려는 문자와 같다고 하면 index를 문자의 길이만큼 더하여 오른쪽으로 이동하고,

찾으려는 문자와 같지 않다고 하면 index에 +1을 하여 오른쪽으로 1칸씩 이동하면 된다.

위 과정을 (전체 문자열 - 현재 index > 찾으려는 문자열의 길이) 일 때까지 계속 반복하면 된다.

 

코드

const answer = (data) => {

    const originalData = data[0];
    const searchData = data[1];

    let result = 0;
    let index = 0;
    const searchDataLength = searchData.length;

    while(originalData.length - index >= searchDataLength ){
        // 찾으려는 문자열이 맞으면 문자열의 길이만큼 index 추가
        if(originalData.substr(index,searchDataLength) === searchData){
            result += 1;
            index += searchDataLength;
        }
        // 찾으려는 문자열이 아니면 +1 만큼 index 추가
        else{
            index += 1;
        }
    }

    console.log(result);
}

const input = [];
require("readline")
    .createInterface(process.stdin, process.stdout)
    .on("line", (line) => {
        input.push(line);
    })
    .on("close", () => {
        answer(input);
        process.exit();
    });

 

코드는 깃헙에서도 확인할 수 있습니다.🤗

https://github.com/duduchi/Algorithm/blob/main/Search/BaekJoon_1543.js

 

GitHub - duduchi/Algorithm: 알고리즘 이론 및 구현 소스 정리 프로젝트 입니다.

알고리즘 이론 및 구현 소스 정리 프로젝트 입니다. Contribute to duduchi/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘' 카테고리의 다른 글

BaekJoon_1032(베스트셀러)  (0) 2022.06.28
BaekJoon_1568(새)  (0) 2022.06.27
BaekJoon_1541(잃어버린 괄호)  (0) 2022.05.11
BaekJoon_1931(회의실 배정)  (0) 2022.05.10
BaekJoon_11047(동전)  (0) 2022.05.09