반응형
프로그래머스 LV1. 완주하지 못한 선수
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
ArrayList<String> participantArray = new ArrayList<>(Arrays.asList(participant));
ArrayList<String> completionArray = new ArrayList<>(Arrays.asList(completion));
for(String completor:completion){
for(int i= 0 ; i < participantArray.size() ; i++ ) {
if(participantArray.get(i).equals(completor)) {
participantArray.remove(i);
break;
}
}
}
String answer = participantArray.get(0);
return answer;
}
}
|
cs |
HashMap, ArrayList, LinkedList 속도 비교 :: Sentio, ergo sum (tistory.com)
구글링 중 다른 블로거님의 포스팅을 참고하니 ArrayList는 삭제속도가 굉장히 느리다고 한다.
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
|
import java.util.HashMap;
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
HashMap<Integer,String> participantHashMap = new HashMap<>();
for(int i = 0 ; i < participant.length ; i ++){
participantHashMap.put(i,participant[i]);
}
System.out.println(participantHashMap.toString());
for(String completor:completion){
for(int j = 0 ; j < participant.length ; j++){
if(completor.equals(participantHashMap.get(j))){
participantHashMap.remove(j);
break;
}
}
}
String answer = participantHashMap.get(participantHashMap.keySet().toArray()[0]);
return answer;
}
}
|
cs |
해쉬맵으로 변경했으나 여전히 실패
정렬을 이용해서 알고리즘을 수정하여 성공. 해쉬맵으로는 어떻게 해야 통과할 수 있을까.
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
33
|
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
completion = Arrays.copyOf(completion,completion.length+1);
completion[completion.length-1] = "000"; //길이를 맞추기 위함
Arrays.sort(participant,Collections.reverseOrder());
Arrays.sort(completion,Collections.reverseOrder());
String answer = "";
for(int i =0 ; i <participant.length ; i++){
if(!(participant[i].equals(completion[i]))){
answer = participant[i];
break;
}
// System.out.println(participant[i] + " : " + completion[i]);
}
return answer;
}
}
|
cs |
반응형
'개발 > 코딩' 카테고리의 다른 글
[프로그래밍] 프로그래머스 예제문제 풀어보기 <모의고사> 성공 (2) | 2022.05.27 |
---|---|
[프로그래밍] 프로그래머스 예제문제 풀어보기 <K번째수> 성공 (0) | 2022.05.25 |
[SPRING] IOC,DI,AOP의 대략적 이해_스프링5(최범균님 저)_1회독 중 (2) | 2022.04.09 |
[프로그래밍] 프로그래머스 예제문제 풀어보기 <없는 숫자 더하기> (성공) (0) | 2022.03.25 |
[프로그래밍] 프로그래머스 예제문제 풀어보기 <크레인인형뽑기> (실패 -> 성공) (0) | 2022.03.24 |