https://programmers.co.kr/learn/courses/30/lessons/17684
출처 : 프로그래머스
def solution(msg):
answer = []
dic = dict()
for i in range(ord('A'), ord('Z')+1):
dic[chr(i)] = i - ord('A') + 1
start, end = 0, 1
print(dic)
idx = 27 # dic 처음의 다음 인덱스
while end < len(msg)+1:
w = msg[start:end]
if w in dic:
end += 1
else:
answer.append(dic[w[:-1]])
dic[w] = idx # 인덱스 삽입
idx += 1
start = end -1
answer.append(dic[w])
return answer
풀이
영어 대문자 문자열로 조건에 맞게 비교하며 슬라이싱하는 문제이다.
슬라이싱 인덱싱이 조금 헷갈린다..
알파벳에 맞는 색인 문자를 같이 입력해야하니까
알파벳 사전을 dict() 으로 구현한다.
dic = dict()
for i in range(ord('A'), ord('Z')+1):
dic[chr(i)] = i - ord('A') + 1
이는 많이 나오니까 알아두자.
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 피로도 python (0) | 2022.05.26 |
---|---|
[프로그래머스] 소수 찾기 (level2) python (0) | 2022.05.25 |
[프로그래머스] JadenCase 문자열 만들기 python (0) | 2022.04.28 |
[프로그래머스] 여행경로 python (*) (0) | 2022.04.28 |
[프로그래머스] 구명보트 python (*) (0) | 2022.04.25 |