본문 바로가기
TIL - 프로그래밍/Python 알고리즘

[프로그래머스] [3차] 압축 - Python

by chaemj97 2023. 3. 8.
728x90

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

 

프로그래머스

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

programmers.co.kr


  • 풀이
    • 사전에 다음 글자가 추가된 글자가 없으면 추가하고 색인번호 출력
      • 입력한 단어는 지우고 남은 단어로 반복
    • 있다면 추가하여 확인해보기
  • 코드
def solution(msg):
    # 사전
    alpha = {chr(i+65):i+1 for i in range(26)}
    
    answer = []
    
    while True:
        # 해당 글자가 사전에 있다면 끝
        if msg in alpha:
            answer.append(alpha[msg])
            break
        for i in range(1,len(msg)):
            # 다음 글자 추가 한 글자가 사전에 있는가?
            # 없다면
            if msg[:i+1] not in alpha:
                # 이전 글자 번호 출력
                answer.append(alpha[msg[:i]])
                # 사전에 추가
                alpha[msg[:i+1]] = len(alpha)+1
                # 다음 글자부터 확인하기
                msg = msg[i:]
                break
    return answer
728x90
반응형

댓글