BoBo World

[Codeforces] #2257A - Creating Abbreviations [C++]

문제 링크 1. 아이디어 약어가 만들어질 수 있는지는 그 약어의 모든 글자가 초기 단어들의 첫 글자 집합 안에 있는지로 결정되는데, 새로 만든 약어를 집합에 다시 넣어도 이 판정이 달라지지 않는다는 점이 핵심이다. 약어가 이후에 다른 약어의 재료로 쓰일 때 기여하는 건 자기 첫 글자 하나뿐이고, 그 첫 글자는 약어를 이루는 수열 맨 앞 단어의...

[Programmers] #43163 - 단어 변환 [Java][C++][Python]

문제 링크 1. 아이디어 각 단어를 정점으로 두고 한 글자만 다른 두 단어를 간선으로 잇는 그래프를 생각하면, begin에서 target까지의 최소 변환 횟수는 이 그래프의 최단 경로 길이다. 간선 비용이 모두 1이므로 최단 거리 BFS로 구하면 된다. 어떤 단어의 인접 단어는 각 자리를 a부터 z까지 바꿔 본 후보 중 words에 실제로 ...

[Programmers] #1844 - 게임 맵 최단거리 [Java][C++][Python]

문제 링크 1. 아이디어 인접한 칸으로의 이동 비용이 모두 1이므로 최단 거리는 BFS로 구하면 된다. 시작 칸 $(0, 0)$에서 큐를 초기화하고, 상하좌우 네 방향 중 맵 안이면서 벽이 아니고 아직 방문하지 않은 칸을 큐에 넣으며 거리를 하나씩 늘려 나갔다. 거리는 dist 배열을 활용했으며 시작 칸부터 거리 1로 세므로 0으로 초기화한...