반응형
250x250
Notice
Recent Posts
Recent Comments
Link
DecordRay
[프로그래머스] Level2 : [3차] 압축[Python] 본문
728x90
반응형
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/17684
풀이 :
1. 사전 초기화
2. 현재 입력부터 한 문자씩 이어붙인 문자열이 사전에 없을때까지 반복문 진행(내부 반복문)
3. 2번에서 temp2에 저장한 사전에 없는 문자열을 사전에 추가
4. temp에 저장된 문자열(현재 입력으로부터 사전에 있는 가장 길이가 긴 문자열)을 answer 리스트에 추가
+ 추가적인 설명은 주석 참고
코드 :
def solution(msg):
answer = []
dic = {'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7,'H':8,'I':9,'J':10,'K':11,'L':12,'M':13,'N':14,'O':15,'P':16,'Q':17,'R':18,'S':19,'T':20,'U':21,'V':22,'W':23,'X':24,'Y':25,'Z':26}
count = 0
idx = 27 # 현재 딕셔너리 길이 + 1(딕셔너리에 없는 문자열은 해당 값을 넣어줄것이므로)
for i in range(len(msg)):
if count != 0: # count가 0이 아니라면 0이 될때까지 반복문 건너뛰기
count -= 1
continue
temp = msg[i] # 현재 i번째에 해당하는 문자를 temp에 저장
temp2 = ''
for j in range(i+1,len(msg)):
if temp + msg[j] not in list(dic.keys()): # 이어붙인 문자열이 딕셔너리에 없을경우
temp2 = temp+msg[j] # temp + msg[j]를 temp2에 저장
break
temp += msg[j] # 이어붙인 문자열이 딕셔너리에 있을 경우
count += 1 # count + 1 증가
answer.append(dic[temp]) # temp 값을 answer리스트에 추가
dic[temp2] = idx # temp2(딕셔너리에 없는 문자열)를 사전에 추가
idx+=1 # 딕셔너리에 집어넣을 값 1 증가
return answer
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level2 : 피로도[Python] (0) | 2023.01.20 |
---|---|
[프로그래머스] Level2 : 더 맵게[Python] (0) | 2023.01.19 |
[프로그래머스] Level2 : k진수에서 소수 개수 구하기[Python] (0) | 2023.01.16 |
[프로그래머스] Level2 : 귤 고르기[Python] (0) | 2023.01.16 |
[프로그래머스] Level2 : 전화번호 목록[Python] (0) | 2023.01.13 |
Comments