https://school.programmers.co.kr/learn/courses/30/lessons/17684
def solution(msg):
answer = []
number = 27
alpha = {
'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
}
number = 27
c,w = 0,0
while True:
c += 1
if c == len(msg):
answer.append(alpha[msg[w:c]])
break
if msg[w:c+1] not in alpha:
alpha[msg[w:c+1]] = number
number += 1
answer.append(alpha[msg[w:c]])
w = c
return answer
우선 문제 설명이 매우 불친절했다.
나는 알파벳이 딕셔너리에 있으면 answer에 append, 없으면 alpha에 추가
인줄 알았지만
없으면 그 이전 단어를 append, 알파에 추가였다.
처음엔
# from collections import deque
def solution(msg):
# queue=deque()
answer = []
# queue.append(msg[0])
# s = msg[0]
# msg = msg[1:]
alpha = {
'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
}
number = 27
isBreak = False
while len(msg) >= 1:
s = ''
for i in range(len(msg)):
s = s + msg[i]
if s not in alpha:
alpha[s] = number
number += 1
answer.append(alpha[s[0:-1]])
msg = msg[i:]
break
if len(msg) == 1:
isBreak = True
if isBreak:
break
# while msg:
# isBreak = False
# for i in range(len(msg)):
# s = s + msg[i]
# if s not in alpha:
# alpha[s] = number
# number += 1
# answer.append(s[0:-1])
# for i in range(len(msg)):
# s = ''
# for j in range(len(msg)):
# s =
# while msg:
# s = ''
# isBreak = False
# for i in range(len(msg)):
# s = s + msg[i]
# if s in alpha:
# answer.append(alpha[s])
# if len(msg) ==
# else:
# alpha[s] = number
# number += 1
# while msg:
# for i in range(len(msg)):
# s = s+msg[i]
# if s in alpha:
# # msg = msg[i:]
# answer.append(alpha[s])
# else:
# alpha[s] = number
# number += 1
# msg = msg[i:]
# break;
return answer
이런 식으로 생각했었다.
디큐도 선언해보고 여러 가지를 시도해봤지만 while문 탈출 조건을 끝내 생각하지 못했다.
'알고리즘' 카테고리의 다른 글
프로그래머스) 스킬트리-python (0) | 2023.01.24 |
---|---|
프로그래머스)주차 요금 계산-python (0) | 2023.01.24 |
프로그래머스 (0) | 2023.01.23 |
프로그래머스) k진수에서 소수찾기-python (0) | 2023.01.20 |
프로그래머스)튜플 -python (0) | 2023.01.20 |