[프로그래머스] 단어변환 - python 파이썬

2024. 8. 1. 17:12·코딩테스트/프로그래머스

문제

 

 

이 문제는 주어진 단어를 한개의 알파벳만 변환해주면서 target이라는 단어와 같도록 변환을 해주는데 이때 변환을 하는데 필요한 "최소" 단계 수를 구해주는 문제이다.

 

최소 단계를 구하는 문제이기때문에 bfs를 사용하여 문제를 풀어주었다.

 

이때 queue 를 사용해서 문제를 풀어주는데 queue에 다음에 들어갈 단어와 단계까지 같이 넣어주면 된다.

 

나의 코드

from collections import deque
def solution(begin, target, words):
    answer = 0
    #변환할 수 없는 경우
    if target not in words:
        return answer
    
    return bfs(begin, target, words)
    
def bfs(begin, target, words):
    
        q = deque()
        #첫번째 단계는 0으로 초기화
        q.append([begin,0])
        
        while(q):
            now, step = q.popleft()
            #target과 같아지면 종료
            if now == target:
                return step
            
            for word in words:
                #다른 알파벳의 개수를 세주는 cnt
                cnt = 0
                for i in range(len(word)):
                    if word[i] != now[i]:
                        cnt += 1
                #알파벳이 하나만 다르다면 q에 추가해주고 단계를 +1하여 추가해줌        
                if cnt == 1:
                    q.append([word,step+1])

 

 

평소에 자주 풀던 bfs 형태의 문제에서 queue에 인자값을 하나 더 해주어 step이라는 단계를 기록하는 인자값을 추가해주는 것을 생각해내는 부분이 가장 까다로웠던 문제였던 것 같다.

 

bfs 문제를 풀 때 문제에 주어진 조건에 맞게 형태를 변경해주는 방법에 대해서 배우게 된 문제이다.

 

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 여행경로 -python 파이썬  (1) 2024.08.06
[프로그래머스] 아이템 줍기 -python  (0) 2024.08.06
[프로그래머스] N으로 표현 -python 파이썬  (1) 2024.07.25
[프로그래머스] 더맵게 - python파이썬  (1) 2024.07.25
[프로그래머스] 디스크 컨트롤러 - python 파이썬  (0) 2024.07.24
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 여행경로 -python 파이썬
  • [프로그래머스] 아이템 줍기 -python
  • [프로그래머스] N으로 표현 -python 파이썬
  • [프로그래머스] 더맵게 - python파이썬
hiwon
hiwon
천천히 굴러가는 코딩일기
  • hiwon
    하이원의 코딩 일기
    hiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (83)
      • 프론트엔드 (0)
        • react (0)
      • 백엔드 (13)
        • node.js (1)
        • spring (6)
      • 코딩테스트 (57)
        • 백준 (41)
        • 프로그래머스 (15)
      • 프로디지털아카데미 (9)
        • 클라우드 (1)
        • JavaScript (1)
      • github (1)
      • AWS (2)
      • Infra (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    K디지털트레이닝
    코테
    BFS
    그리디
    다익스트라
    IT기획
    파이썬
    투포인터
    UnionFind
    spring
    MSA
    알파코
    알파코캠퍼스
    EC2
    github
    신한투자증권
    kdt교육
    백준
    코딩테스트
    백엔드
    프디아
    프로그래머스
    Java
    알고리즘
    백트래킹
    python
    bastion host
    AWS
    깃허브
    프로디지털아카데미
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hiwon
[프로그래머스] 단어변환 - python 파이썬
상단으로

티스토리툴바