백준 1543 문서 검색

2025. 1. 9. 22:46·코딩테스트/문자열

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

문제 설명

더보기

문제

세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 단어가 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다.

세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 문서가 주어진다. 문서의 길이는 최대 2500이다. 둘째 줄에 검색하고 싶은 단어가 주어진다. 이 길이는 최대 50이다. 문서와 단어는 알파벳 소문자와 공백으로 이루어져 있다.

출력

첫째 줄에 중복되지 않게 최대 몇 번 등장하는지 출력한다.


문제 풀이

찾으려는 단어의 index를 찾고 해당 값이 있다면 answer 1증가

문서를 (해당 index + 단어길이)로 잘라 위 작업을 반복

const inputs = require("fs")
  .readFileSync("/dev/stdin")
  .toString()
  .trim()
  .split("\n");

let document = inputs[0];
let word = inputs[1];

let answer = 0;
while (document.indexOf(word) !== -1) {
  answer++;
  document = document.slice(document.indexOf(word) + word.length);
}

console.log(answer);

결론

slice를 이용하여 답을 구할 수 있지만 split()을 이용해서도 특정 문자가 몇개 있는지 확인 할 수 있음

‘ababa’ → ‘ab’일 때 split이용

document.split('ab').length - 1

‘ab’를 기준으로 split을 할 경우 [’’, ‘’, ‘a’] 가 나옴

즉, length(3) - 1을 하면 2개가 나오는걸 확인할 수 있음

'코딩테스트 > 문자열' 카테고리의 다른 글

백준 17413 단어 뒤집기 2  (0) 2025.02.11
백준 5052 전화번호 목록  (4) 2025.01.20
'코딩테스트/문자열' 카테고리의 다른 글
  • 백준 17413 단어 뒤집기 2
  • 백준 5052 전화번호 목록
의현
의현
개발은 즐거워
  • 의현
    UIHYEON BLOG
    의현
  • 전체
    오늘
    어제
    • 분류 전체보기 (118) N
      • 프론트엔드 (47)
        • JavaScript (47)
        • TypeScript (0)
        • HTML (0)
        • CSS (0)
        • React (0)
      • 프로젝트 (2)
        • Task Flow (2)
      • 코딩테스트 (68) N
        • Binary Search (2)
        • bfs (Breadth-first s.. (4)
        • dfs (Deapth-first se.. (1)
        • Greedy (1)
        • Dynamic Programming (1)
        • two pointer (4)
        • 구현 (2)
        • LIS(Longest Increasi.. (0)
        • 문자열 (3)
        • 자료구조 (4)
        • 비트마스크 (2)
        • 수학 (2)
        • 프로그래머스 (42) N
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
의현
백준 1543 문서 검색
상단으로

티스토리툴바