🎉 문제
문제링크
🎉 입/출력 형식
🎉 접근방법
- A~Z를 String 형태로 list에 저장한다.
- 주어진 msg를 index 0부터 빈 스트링(s)에 붙히면서 list에 있는지 확인한다.
2-1 list에 존재하면 history에 s를 저장한다.
2-2 list에 없으면 history의 index 번호는 ans에 저장하고 s는 list에 넣어 준뒤
s = ""로 초기화하고 index를 -1를 해준다.
- index가 msg 길이 만큼 2를 반복한다.
- 마지막 history의 index 번호를 ans에 저장하고 반환한다.
🎉 코드
import java.util.*;
class Solution {
public int[] solution(String msg) {
int[] answer = {};
List<Integer> ans = new ArrayList<>();
List<String> list = new ArrayList<>();
char temp = 'A';
for(int i=0; i<26; i++){
String str = String.valueOf((char)(temp+i));
list.add(str);
}
String s = "";
String history = "";
for(int i=0; i<msg.length(); i++){
s += msg.charAt(i);
if(list.contains(s)){
history = s;
continue;
}
ans.add(list.indexOf(history)+1);
list.add(s);
s = "";
i--;
}
ans.add(list.indexOf(history)+1);
return ans.stream().mapToInt(i->i).toArray();
}
}