2024/03 2

[백준] 1543: 문서 검색 (JAVA)

문제 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 단어가 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다. 세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 문서가 주어진다. 문서의 길이는 최대 2500이다. 둘째 줄에 검색하고 싶은 단어가 주어진다. 이 길이는 최대 50이다. 문서와 단어는 알파벳 소문자와 공백으로 이루어져 있다. 출..

알고리즘/백준 2024.03.25

[프로그래머스] 단어 변환 (JAVA)

문제 풀이 BFS가 DFS보다 어렵게 느껴져서 연습을 위해 풀어보았다. 처음에는 감을 아예 못 잡아서 헤맸는데, 백준의 숨바꼭질과 비슷하다는 생각이 들어서 비슷한 느낌으로 구현하게 되었다. BFS DFS를 익혀가면서 느끼는 건데, visited를 int 배열로 구현할 것인지, boolean 배열로 구현할 것인지 항상 헷갈린다. words 안에 target이 없는 경우 바로 answer를 0으로 리턴한다. check 메서드는 한 글자만 다른지 확인하는 역할을 한다. cntIndex 메서드는 그냥 중복이 싫어서 따로 만든 메서드이다. BFS 메서드에서는 단어 변경 가능한 경우, next(다음 단어 할당할 변수)에 words[i]를 넣는다. next와 target이 같은 경우 words에서의 now 인덱스를 ..