728x90
https://programmers.co.kr/learn/courses/30/lessons/17684
반복문을 사용해서 모든 경우를 탐색해주었다.
chr( ) 아스키코드로 변경해줄 수 있는 함수를 사용해서 딕셔너리에 A~Z까지의 val값을 넣어주었다.
(ord( ) 는 아스키코드를 숫자로 바꾸는 함수)
딕셔너리를 사용해서 키와 벨류값을 지속적으로 수정해주며 answer값을 채워감
각 코드에 주석이 달려있다!
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
def solution(msg):
answer = []
dic = {}
n = 1
# A ~ Z 까지 인덱스를 아스키코드를 이용해 저장한다
for i in range(65, 91):
dic[chr(i)] = n
n += 1
next_idx = 0
for i in range(len(msg)):
if next_idx > 0:
next_idx -= 1
continue
next_idx = 0
str_list = msg[i]
middle_str = msg[i]
print(middle_str)
for j in range(i + 1, len(msg)):
# 추가 문자를 포함한 문자열을 str_list에 저장
str_list += msg[j]
if str_list in dic:
# 만약 추가문자열 포함한것이 dic안에 있으면 일단 middle에 저장
middle_str = str_list
next_idx += 1
continue
# 없다면 그 전 문자열까지인 middle까지의 값을 answer에 저장
# 그리고 dic에 그 다음 문자열까지인 str_list를 추가해줌
else:
break
print(middle_str)
answer.append(dic[middle_str])
dic[str_list] = len(dic) + 1
return answer
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 2] 가장 큰 정사각형 찾기 (파이썬/python) (0) | 2021.06.11 |
---|---|
[프로그래머스 LV 2] 파일명 정렬 (파이썬/python) (0) | 2021.06.11 |
[프로그래머스 LV 2] 괄호 변환 (파이썬/python) (0) | 2021.06.11 |
[프로그래머스 LV 2] n진수 게임 (파이썬/python) (0) | 2021.06.11 |
[프로그래머스 LV 2 ] 올바른 괄호 파이썬/python (0) | 2021.06.10 |