Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 렉시컬 스코프
- 11047
- 배열같은배열아닌너
- 함수 이놈
- 1236
- Async/Await
- 1904
- 탐욕 알고리즘
- baekjoon
- 1931
- 2667
- 1543
- 1568
- 비동기처리
- 자류구조
- 9461
- 11399
- html5
- 백준
- 동적계획법
- 1302
- 1668
- setTiemOut
- 함수 arguments
- 유사배열
- javascript
- event loop
- 호이스팅
- 함수 parmater
- 함수 선언문
Archives
- Today
- Total
두치의 개발공부
BaekJoon_1543(문서 검색) 본문
문제
https://www.acmicpc.net/problem/1543
문제풀이
전체 문자열에서 찾으려는 문자를 찾아야 한다.
전체 문자열에서 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
'알고리즘' 카테고리의 다른 글
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 |