프로그래밍

프로그래머스 알고리즘 문제 설명 좀 해줘

https://school.programmers.co.kr/learn/courses/30/lessons/43163

 

문해력이 ㅈㄴ 딸려서 그런가 예시가 이해가 안 감

 


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

1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.
2. words에 있는 단어로만 변환할 수 있습니다.

예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다.

두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지 return 하도록 solution 함수를 작성해주세요.


hit -> hot -> dot -> dog -> cog 이렇게 1개씩 변경이 되었는데

애초애 dot에서 d를 변경하지 않고 걍 넘어가고 나중에 cog때 c로 바꾸면 되는거 아님?

'1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.' 라고 했지 반드시 바꾸라고 안 했고 lot, log는 넘어갔잖아.

하아..... 문제부터 이해가 안 가네 알고리즘 너무 어렵다...

 

 

------------------------------------ 추가 글 ------------------------------------

댓글들을 보며 이해가 갔다!!

내가 이해한건 이럼.

첫번째 hit과 hot은 가운데 1개만(O) 다름. 그래서 i만 바꿔주면 됨.

두번째 hot과 dot은 앞에 1개만(d) 다름. 그래서 h만 바꿔주면 됨. (dog와 바꾸려면 앞, 뒤 2개가 다르므로 바꿀 수 없으니 여기서 d를 바꿔줌)

세번째 dog와 dot는 뒤에 1개만(g) 다름. 그래서 t만 바꿔주면 됨.

네번째 dog와 lot는 앞, 뒤 2개가 다르기 때문에 바꿀 수 없음.

다섯번째 dog와 log는 앞 1개만(d) 다름. 하지만 마지막 cog하고 c만 바꾸면 되기 때문에 바꿀 필요가 없음

마지막 dog와 cog는 앞 1개만(c) 다름. 그래서 d만 바꿔주면 됨.

 

이거인거 같은데 맞지? 

8개의 댓글

2023.06.04

현재상태에서 변환 가능한 집합을 BFS돌면될거같은데?

0
2023.06.04
@트린장인

BFS 도는건 알겠는데 글에 썻듯이 dot때 d를 바꿀 이유가 없지 않아?

dot때그냥 넘어가고 cog때 c로 바꾸면 끝 아님?

0
2023.06.04
@집에가게해줘

규칙이 한번에 한개의 알파벳인데 그냥 넘어간다는게 잘 이해안가

0
2023.06.04
@트린장인

한번에 한 개의 알파벳을 바꿀 수 있다 라는 뜻이 1개는 반드시 바꿔야 한다는 거야?

그럼 lot랑 log는 왜 안 바꾸고 건너 뛴거?

0
2023.06.05
@집에가게해줘

그게 아니라 모든 경우의수를 체크해야한다는거지

lot랑 log의 경우의수도 있는데, 지금 적어둔 케이스보다 느리니깐 (제일 빠른케이스가 아니라서)

예시에 적지 않은거임

 

 

0

한번에 하나의 알파벳을 바꿀 수 있는데,

hot 에서 dog로 어떻게 넘어간단 말이야?

0
2023.06.04

words는 단순히 바꿀 수 있는 단어 집합을 제시한거야 주어진 순서대로 꼭 거쳐 가라는게 아니고

0

뭐지 링크 들가보니까 옛날에 풀었나본데 기억이 안나네

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5719 [프로그래밍] 하이브리드 웹뷰기반 앱은 rn이 정석이야? 3 잠적자 0 14 시간 전 151
5718 [프로그래밍] c# webview2 도움요청함.. 7 carpediem 0 19 시간 전 108
5717 [프로그래밍] 현업 개발자형들 맥씀? 8 이또히로부미 0 21 시간 전 194
5716 [프로그래밍] libtorch에서 cuda 안불러와지는거 도움! 2 Hakat 0 2 일 전 121
5715 [프로그래밍] 뭔가 게시판이 애매해서 그런데 gis 잘아는 사람? 1 하늘늑대 0 3 일 전 162
5714 [프로그래밍] 컴포즈가 프리뷰랑 폰에서 다르게 동작해요 1 집에가게해줘 0 3 일 전 116
5713 [프로그래밍] 난바보다) 크로미움 램사용량 문제 일단 해결 2 ye 0 4 일 전 282
5712 [프로그래밍] k8s DNS 이슈는 해결이 안되나보다. 잉텔 0 5 일 전 170
5711 [프로그래밍] 분노) 진짜 유튜브 구글 패악질 토나오네 씨발 17 ye 0 6 일 전 767
5710 [프로그래밍] 프론트엔드 공부하려는데 언어 추천좀 7 스트리플 0 7 일 전 348
5709 [프로그래밍] 객체지향 뽕에 취하지마라 8 69746974 2 8 일 전 407
5708 [프로그래밍] 요즘 앱개발 인력시장 어떰..3년차 2 센치해요 0 11 일 전 387
5707 [프로그래밍] 컴포즈 Box 컴포넌트가 안 나와... 1 집에가게해줘 0 12 일 전 148
5706 [프로그래밍] 아 ssl 적용햇는데 개정신없네 9 넌또화나있네 0 13 일 전 304
5705 [프로그래밍] 패스트 캠퍼스 <---- 얘내는 가격 인상 원툴임? 5 조강현 0 16 일 전 397
5704 [프로그래밍] 클라가 파이썬 셀레니움같은거 써서 클릭하고 그러는걸 감지 ... 5 리옴므 0 17 일 전 265
5703 [프로그래밍] leetcode 50일 달성 1 JimmyMcGill 1 17 일 전 237
5702 [프로그래밍] 그냥 개인공부용 git 만들건데 5 년째재수강 0 17 일 전 336
5701 [프로그래밍] html 자바스크립트 질문 19 책걸이 0 17 일 전 369
5700 [프로그래밍] 아니 시바 이게 무슨일이야 4 인간지표 0 18 일 전 380