코딩 테스트 챌린지

[9월 코테 챌린지] 프로그래머스 :: (Lv0) 227개 (Lv1) 63개 (Lv2) 41개 (Lv3) 5개 // 누적 336개

  • -
728x90
반응형

2024/09/06

(Lv0) 227개 (Lv1) 63개 (Lv2) 41개 (Lv3) 5개 // 누적 336개


풀이한 문제

Lv3

  1. 단어 변환
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


문제 풀이

def solution(begin, target, words):
    b = len(begin)
    if target not in words:
        return 0
    
    if begin in words:
        words.remove(begin)
    words.remove(target)
    words.append(target)
    ## 차이가 1만큼 나는 단어들
    allword = [begin] + words
    allword = allword[::-1]
    diff1 = {i:[] for i in allword}
    for i in range(len(allword)):
        k1 = list(allword[i])
        for j in range(i+1,len(allword)):
            dif = 0
            k2 = list(allword[j])
            for kk in range(b):
                if k1[kk] != k2[kk]:
                    dif += 1
                if dif > 1:
                    break
            if dif == 1:
                diff1[allword[i]].append(allword[j])
    
    answer = 1
    start = diff1[target] #[log,dog] []
    while begin not in start:
        now = []; answer += 1
        for i in start:
            if begin in diff1[i]:
                return answer
            now += diff1[i]
        start = list(set(now))
        
    return answer

 

 

Lv3. 단어 변환

문제 보기 :  단어 변환  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세

dtdiary.tistory.com


미완성 문제

Lv2

  1. 구명보트
  2. 피로도
320x100
728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.