728x90
처음에는 Map으로 했는데 (Line:24의 중복된 원소를 Map.getOrDefault(..)로 했음)
Set.add( )의 리턴값이 boolean형이라는 것을 다른 분 코드보고 알게 됐다
Map -> Set으로 바꾸니까 깔끔하기는한데
Map의 속도는 O(1)인데
Set.add()하면서 중복인지 아닌지 판별하는 속도가 O(1)보다는 클 것이라고 생각한다
둘다 HashFuncion을 사용하는 자료구조였음.. Set의 탐색은 O(1)/저장 O(1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import java.util.*;
class Solution {
public int[] solution(String s) {
// System.out.println(s);
List<String> list = new ArrayList<>();
// Map<Integer, Boolean> map = new HashMap<>();
Set<Integer> set = new HashSet<>();
String[] split = s.split("}");
for(int i=0; i<split.length; i++){
// System.out.println(split[i]);
list.add(split[i].substring(2, split[i].length()));
}
Collections.sort(list, (s1, s2) -> s1.length()-s2.length());
// list.forEach(System.out::println);
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++){
split = list.get(i).split(",");
for(int j=0; j<split.length; j++){
int currNum = Integer.parseInt(split[j]);
if(set.add(currNum)){
answer[i] = currNum;
}
}
}
return answer;
}
}
|
cs |
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
1 ★★★ [프로그래머스][JAVA] 전화번호 목록 (문자열) (0) | 2022.03.24 |
---|---|
1 ★★★ [프로그래머스][JAVA] 빛의 경로 사이클 (배열, 구현..?, 재귀를 while문으로) (0) | 2022.03.24 |
1 ★★★ [프로그래머스][JAVA] 수식 최대화 (순열) (0) | 2022.03.24 |
[프로그래머스][JAVA] 거리두기 확인하기 (DFS) (0) | 2022.03.19 |
[프로그래머스][JAVA] [1차] 뉴스 클러스터링 (문자열) (0) | 2022.03.19 |