- μ 체 νλ μ΄μ΄ μ€ μμμ λ νλ μ΄μ΄κ° μνν κ²½κΈ°μ κ²°κ³Ό λͺ©λ‘
matches
μ΄ μ£Όμ΄μ‘μ λ ν λ²λ μ§ μ μ΄ μλ νλ μ΄μ΄μ λͺ©λ‘κ³Ό λ± ν λ²λ§ μ§ νλ μ΄μ΄μ λͺ©λ‘μ ꡬνλ λ¬Έμ μ΄λ€. - λΆκ°μ μΌλ‘ νλ μ΄μ΄μ λͺ©λ‘μ μ€λ¦μ°¨μ μ λ ¬ λμ΄μμ΄μΌ νλ€.
- κ΅³μ΄ λ©λͺ¨λ¦¬ 곡κ°μ ν¨μ¨μ μΌλ‘ μ¬μ©ν νμκ° μλ€λ©΄ λ¬Έμ λ λ¨μνλ€. μΆνν λͺ¨λ νλ μ΄μ΄λ₯Ό λ²νΈλ³λ‘ λ§νΉνκ³ κ° νλ μ΄μ΄ λ³ κ²½κΈ°μ ν¨λ°° νμλ₯Ό μΌλ€.
- κ·Έ λ€μ λͺ¨λ νλ μ΄μ΄ λ²νΈμ λν΄μ μΆνν νλ μ΄μ΄λ§ 골λΌμ ν¨λ°° νμλ₯Ό κΈ°μ€μΌλ‘ λͺ©λ‘μ λ§λ€λ©΄ λλ€.
class Solution {
public List<List<Integer>> findWinners(int[][] matches) {
List<List<Integer>> result = new ArrayList<>();
List<Integer> noLost = new ArrayList<>();
List<Integer> oneLost = new ArrayList<>();
boolean[] present = new boolean[100_000 + 1];
int[] counter = new int[100_000 + 1];
for (int[] match : matches) {
present[match[0]] = present[match[1]] = true;
++counter[match[1]];
}
for (int i = 0; i < counter.length; ++i) {
if (!present[i]) continue;
if (counter[i] == 0)
noLost.add(i);
if (counter[i] == 1)
oneLost.add(i);
}
noLost.sort(Comparator.naturalOrder());
oneLost.sort(Comparator.naturalOrder());
result.add(noLost);
result.add(oneLost);
return result;
}
}