🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
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
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import java.util.*;
class Solution {
static String begin, target;
static String[] words;
static boolean[] visited;
static int answer = 0;
public int solution(String begin, String target, String[] words) {
this.begin = begin;
this.target = target;
this.words = words;
visited = new boolean[words.length];
dfs(begin, 0);
return answer;
}
private static void dfs(String begin, int depth) {
if(begin.equals(target)) { // 종료 조건 : begin = target인 경우
answer = depth;
return;
}
for(int i = 0 ; i < words.length ; i++) {
if(visited[i]) continue;
int k = 0; // 두 단어 간 같은 스펠링 갯수 세기
for(int j = 0 ; j < begin.length() ; j++) {
if(begin.charAt(j) == words[i].charAt(j))
k++;
}
// 한 글자 빼고 모두 같은 경우, 변환 가능하므로 dfs 수행
if(k == begin.length() - 1) {
visited[i] = true;
dfs(words[i], depth + 1);
visited[i] = false;
}
}
}
}
|
cs |
🧩 해결 아이디어
• DFS
- 한 글자 빼고 다 같은 단어를 words에서 찾고, 방문 처리함
- depth를 증가시키며 dfs 재귀 호출
- 한 글자 빼고 모두 같은 경우, 단어 변환 가능하므로 DFS르 수행
- begin = target인 경우, 정답을 depth로 설정하고 탈출한다.
🔺 다른 풀이들
- 복습용...! 멋지시다.. 완전탐색 활용하심
[level3] 프로그래머스 - 단어 변환(JAVA)
전체 코드는 맨 밑에 있어요. [ 문제 풀이 ] - 바꿀 수 있는 단어로 모두 바꿔보며 완전탐색한다. [ 풀이 방법 ] - begin에서 바꿀 수 있는 경우에 대해서 모두 탐색을 해본다. => begin과 words[i]의 알파
jisunshine.tistory.com
- 조금 다르다
[알고리즘] 프로그래머스 - 단어 변환 - JAVA
문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳
easybrother0103.tistory.com
- BFS와 HashSet을 활용하셨다.
[프로그래머스/자바] 단어 변환 - BFS
문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳
isshosng.tistory.com
💬 느낀 점
여기서 DFS를 생각한다는 것이.. 백트래킹을 생각한다는 것이..
나는 아직 멀었구나 싶다..🥺
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
[프로그래머스] 단어 변환 (java)
🔗 문제링크 https://programmers.co.kr/learn/courses/30/lessons/43163 👩🏻💻 코드 📝 정리 알고리즘을 보면 다음과 같다. 한 글자 빼고 나머지가 같은 단어를 words에서 찾는다. 찾은 단어를 visited
velog.io
[프로그래머스] 단어 변환 (JAVA)
문제 출처 - Programmers 문제는 여기 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변
blackvill.tistory.com
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 3] 정수 삼각형 (JAVA) (0) | 2023.09.29 |
---|---|
[프로그래머스/Lv. 2] 더 맵게 (JAVA) (1) | 2023.09.28 |
[프로그래머스/Lv. 2] k진수에서 소수 개수 구하기 (JAVA) (0) | 2023.09.25 |
[프로그래머스/Lv. 2] 예상 대진표 (JAVA) (0) | 2023.09.25 |
[프로그래머스/Lv. 0] 5명씩 (JAVA) (0) | 2023.09.24 |