https://school.programmers.co.kr/learn/courses/30/lessons/17684?language=python3
def solution(msg):
map = {}
for i in range(1,27):
map[chr(65+i-1)] = i
msg = list(msg)
index = 0
result = []
while index < len(msg):
# 현재 입력
w = ""
endIndex = index
while endIndex < len(msg) and "".join(msg[index:endIndex+1]) in map:
w = "".join(msg[index:endIndex+1])
endIndex += 1
wc = "".join(msg[index:endIndex+1])
# 출력
result.append(map[w])
# 사전 추가
map[wc] = len(map)+1
index = endIndex
return result
func solution(_ msg:String) -> [Int] {
var map = [String: Int]()
for i in 1...26 {
map[String(UnicodeScalar(64+i)!)] = i
}
let msg = Array(msg).map{ String($0) }
var result = [Int]()
var index = 0
while index < msg.count {
// 현재 입력
var w = ""
var endIndex = index
while endIndex < msg.count && map[msg[index..<endIndex+1].joined()] != nil {
w = msg[index..<endIndex+1].joined()
endIndex += 1
}
// 사전 추가
if endIndex < msg.count {
map[msg[index..<endIndex+1].joined()] = map.count + 1
}
// 출력
result.append(map[w]!)
index = endIndex
}
return result
}
[프로그래머스] 단어 변환 (0) | 2024.01.02 |
---|---|
[프로그래머스] 주차 요금 계산 (0) | 2023.12.29 |
[프로그래머스] 네트워크 (1) | 2023.12.25 |
[프로그래머스] k진수에서 소수 개수 구하기 (0) | 2023.12.22 |
[프로그래머스] 타겟 넘버 (0) | 2023.12.21 |