알고리즘/programmers

[Programmers 코딩테스트 고득점 Kit] 단어 변환

꾸준함. 2021. 9. 10. 21:19

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/43163

 

코딩테스트 연습 - 단어 변환

두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수

programmers.co.kr

우선순위 큐를 활용한 BFS 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 변환된 횟수가 낮을수록 우선순위가 높은 우선순위 큐에 {0, begin}을 넣어줍니다.

2. BFS를 진행하며 words 벡터 내 반복문을 돌리며 현재 단어와 한 글자 차이이고 기존에 pq에 넣어지지 않은 단어들을 넣어줍니다.

3. 2번을 진행하다가 begin -> target으로 변환될 경우 변환 횟수를 반환해주고 begin -> target으로 변환될 수 없다면 0을 반환해줍니다.

 

 

개발환경:Visual Studio 2017

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형