๋ฌธ์
์์ฃผํ์ง ๋ชปํ ์ ์
ํ์ด 1
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
ArrayList<String> compList = new ArrayList<>(Arrays.asList(completion));
for(String part : participant) {
int idx = compList.indexOf(part);
if(idx != -1) {
compList.remove(idx);
} else {
return part;
}
}
return "";
}
}
- ์ฒ์ ํ์ด์
๋๋ค.
- ์ ํ์ฑ ํ
์คํธ ์ผ์ด์ค๋ ํต๊ณผํ์ง๋ง, ํจ์จ์ฑ ํ
์คํธ์์ ์๊ฐ ์ด๊ณผ๊ฐ ๋์ ์ค๋ต ์ฒ๋ฆฌ ๋์์ต๋๋ค.
- ๊ทธ ์ด์ ๋ indexOf์ remove๊ฐ O(N)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๊ณ , for๋ฌธ ์์ ์ค์ฒฉํด์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ต์
์ ๊ฒฝ์ฐ O(N^2)์ด ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
ํ์ด 2
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
Arrays.sort(participant);
Arrays.sort(completion);
for(int i = 0; i < completion.length; i++) {
if(!participant[i].equals(completion[i])) {
return participant[i];
}
}
return participant[participant.length - 1];
}
}
- ๋ฐฐ์ด์ ์ด์ฉํด์ ํ ์ ์์ต๋๋ค.
ํ์ด 3
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
HashMap<String, Integer> map = new HashMap<>();
for(String part : participant) {
map.put(part, map.getOrDefault(part, 0) + 1);
}
for(String comp : completion) {
map.put(comp, map.get(comp) - 1);
}
for(String key : map.keySet()) {
if(map.get(key) != 0) {
return key;
}
}
return "";
}
}
- ๋ฌธ์ ์ฃผ์ ๊ฐ ํด์์๊ธฐ ๋๋ฌธ์, ํด์๋ก๋ ํ์ด ํ์ต๋๋ค.