728x90
풀이
중첩 HashMap을 사용해서 인덱스로 연속되어 있는지, 떨어져 있는지를 확인해줬다.
PCCP를 보고 나서 든 생각은 .. 더 열심히 코테 공부를 해야겠다는 생각 ..
전체코드
import java.io.*;
import java.util.*;
class Solution {
static HashMap<String, HashSet<Integer>> map = new HashMap<>();
public String solution(String input_string) {
for(int i=0; i<input_string.length(); i++){
if(map.containsKey(input_string.charAt(i)+"")){
map.get(input_string.charAt(i)+"").add(i);
}else{
map.put(input_string.charAt(i)+"", new HashSet<Integer>());
map.get(input_string.charAt(i)+"").add(i);
}
}
ArrayList<String> tmp = new ArrayList<>();
String answer = "";
for(String key : map.keySet()){
ArrayList<Integer> list = new ArrayList<>(map.get(key));
Collections.sort(list, (o1, o2) -> o1 - o2);
int cnt = 0;
if(list.size() >= 2){
for(int i=1; i<list.size(); i++){
if(list.get(i) == list.get(i-1)+1){
cnt++;
}else{
tmp.add(key);
break;
}
}
if(cnt+1 == list.size()){
cnt = 0;
continue;
}
}
}
Collections.sort(tmp, (o1, o2) -> o1.compareTo(o2));
for(int i=0; i<tmp.size(); i++){
answer += tmp.get(i);
}
if(tmp.size() == 0){
answer = "N";
}
return answer;
}
}
728x90
'코딩테스트 > Algorithm' 카테고리의 다른 글
[프로그래머스] 기능개발 (JAVA) (0) | 2024.11.26 |
---|---|
[프로그래머스] 같은 숫자는 싫어 (JAVA) (0) | 2024.11.26 |
[Programmers] PCCP 기출문제 충돌위험 찾기 (JAVA) (0) | 2024.11.21 |
[Programmers] 평행 (JAVA) (0) | 2024.11.19 |
[Programmesr] 모의고사 (JAVA) (0) | 2024.11.11 |