📍 문제 설명
https://programmers.co.kr/learn/courses/30/lessons/64065
💡 접근
문자열 길이 기준으로 정렬해서 list에 넣으면 되는 문제였다.
HashSet을 사용하려다가 데이터 순서가 안 맞아서 ArrayList로 풀었는데 데이터 입력 순서 보장해주는 LinkedHashSet 사용하면 된다!
👩💻 코드
import java.util.*;
class Solution {
public ArrayList<Integer> solution(String s) {
s = s.replaceAll("\\{\\{", "")
.replaceAll("\\}\\}", "");
String[] arr = s.split("},\\{");
Arrays.sort(arr, new Comparator<>(){
public int compare(String o1, String o2){
return Integer.compare(o1.length(), o2.length());
}
});
ArrayList<Integer> answer = new ArrayList<>();
for(int i = 0; i < arr.length; i++) {
String[] arr2 = arr[i].split(",");
for(String str : arr2) {
if(!answer.contains(Integer.parseInt(str))){
answer.add(Integer.parseInt(str));
}
}
}
return answer;
}
public static void main(String[] args) {
Solution s = new Solution();
s.solution("{{1,2,3},{2,1},{1,2,4,3},{2}}");
s.solution("{{20,111},{111}}");
}
}
//2 21 213 2134
'Algorithm > programmers' 카테고리의 다른 글
[2018 카카오 블라인드 1차]프렌즈4블록 (0) | 2022.04.11 |
---|---|
[2021 카카오 블라인드]순위 검색★ (0) | 2022.04.02 |
[2021 카카오 인턴십]거리두기 확인하기 (0) | 2022.03.28 |
[2018 카카오 블라인드 1차]뉴스 클러스터링 (0) | 2022.03.28 |
[2021 카카오 블라인드]메뉴 리뉴얼 (0) | 2022.03.28 |