티스토리 뷰
728x90
반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/17684
코드
def solution(msg):
answer = []
eng = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
while len(msg) > 0:
w = msg[0]
cnt = 0
if len(msg) == 1:
answer.append(eng.index(w)+1)
break
while len(w) < len(msg):
s = w
cnt += 1
w += msg[cnt]
if w not in eng:
w = s
break
answer.append(eng.index(w)+1)
msg = msg[len(w):]
if msg:
eng.append(w + msg[0])
return answer
msg문자열에 들어가 있는 문자를 한개씩 확인하여 eng 리스트안에 있는 문자열이면 index 값을 가져와 answer에 넣어주면 된다.
KAKAO가 msg문자열로 들어 왔을 경우에 첫번째 문자열 K부터 확인을 하는데 그 뒤에 문자열까지 합친 값이 eng에 있을 경우 빨리 찾을 수 있으므로 뒤에 문자열을 붙여 eng에 있는지를 확인한다.
예를 들어 eng 리스트에 KA가 있는지 부터 확인을 한다. 만약 있다면 KAK 까지 확인을 하고 KAK는 없다면 eng리스트에 KA에 인덱스를찾아 answer에 넣어주면 된다.
msg는 answer에 추가한 문자열 만큼 슬라이싱 해준다.
그리고 없었던 문자열 KAK는 eng에 넣어준다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level1, 실패율 (Python) (0) | 2021.06.17 |
---|---|
[프로그래머스] Level1, 키패드 누르기 (Python) (0) | 2021.06.17 |
[프로그래머스] Level2, 3차 파일명 정렬 (Python) (0) | 2021.06.16 |
[프로그래머스] Level2, 캐시 (Python) (0) | 2021.06.14 |
[프로그래머스] Level2, 문자열 압축 (Python) (0) | 2021.06.13 |
댓글