문제
https://school.programmers.co.kr/learn/courses/30/lessons/17684
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
import java.util.*;
class Solution {
public int[] solution(String msg) {
Map<String, Integer> dict = new HashMap<>();
List<Integer> result = new ArrayList<>();
for(int i=0;i<26;i++){
dict.put(String.valueOf((char)('A'+i)), i+1);
}
for(int i = 0 ; i < msg.length() ; i++){
int index = 0;
String str = "";
for(int j = i + 1 ; j <= msg.length() ; j++){
str = msg.substring(i,j);
if(dict.containsKey(str)){
index = dict.get(str);
if(j == msg.length()){
i = j;
}
continue;
}else{
i = j-2;
break;
}
}
dict.put(str,dict.size()+1);
result.add(index);
}
int[] answer = new int [result.size()];
for(int i=0;i<result.size();i++){
answer[i] = result.get(i);
}
return answer;
}
}