[프로그래머스] LV.2 [3차] 압축
1. 문제 : Link
2. 풀이 : Link
3. 코드
def solution(msg):
answer = []
dic = {}
for i in range(26):
dic[chr(65+i)] = i+1
w, c = 0, 0
while True:
c += 1
if c == len(msg):
answer.append(dic[msg[w:c]])
break
if msg[w:c+1] not in dic:
dic[msg[w:c+1]] = len(dic) + 1
answer.append(dic[msg[w:c]])
w = c
return answer
import java.util.*;
class Solution {
public int[] solution(String msg) {
String[] alpha = {"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"};
Map<String, Integer> hm = new HashMap<String, Integer>();
for(int i=0; i<alpha.length; i++){
hm.put(alpha[i], i+1);
}
List<Integer> ans = new ArrayList<Integer>();
int len = msg.length();
int i = 0;
while(i < len){
String temp = String.valueOf(msg.charAt(i));
int val = 0;
while(hm.containsKey(temp)){
val = hm.get(temp);
i++;
if(i!=len){
temp += String.valueOf(msg.charAt(i));
} else{
break;
}
}
hm.put(temp, hm.size()+1);
ans.add(val);
}
int[] answer = new int[ans.size()];
for(int k=0; k<ans.size(); k++){
answer[k] = ans.get(k);
}
return answer;
}
}
'💻 Coding Problems Solving > Hash | HashMap' 카테고리의 다른 글
[LeetCode] First Unique Character in a String (0) | 2023.07.20 |
---|---|
[LeetCode] Group Anagrams (0) | 2023.07.18 |
[프로그래머스] LV.2 방문길이 (자바 java) (0) | 2023.03.12 |
[프로그래머스] LV.2 주차 요금 계산 (java) (0) | 2023.03.04 |
[프로그래머스] LV.2 전화번호 목록 (0) | 2022.04.12 |
최근댓글