본문 바로가기

Programmers/Level1

체육복

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
34
35
36
37
38
39
40
41
import java.util.Arrays;
import java.util.HashMap;
 
class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        int answer = 0;
        
        HashMap<Integer, Integer> map1 = new HashMap<>();
        HashMap<Integer, Integer> map2 = new HashMap<>();
        
        for (int res : reserve) {
            map2.put(res, 1);
        }
 
        for (int lo : lost) {
            if (map2.getOrDefault(lo, 0== 1) {
                map1.put(lo, 0);
                map2.put(lo, 0);
            }
            else{
                map1.put(lo, 1);
                n--;
            }
                
        }
        
        for (int lo : lost) {
            if (map1.get(lo) == 1 && map2.getOrDefault(lo - 10== 1) {
                n++;
                map2.put(lo - 10);
            } else if (map1.get(lo) == 1 && map2.getOrDefault(lo + 10== 1) {
                n++;
                map2.put(lo + 10);
            }
        }
 
        answer = n;
        
        return answer;
    }
}
cs

 

체육복이 없는 사람, 예비 체육복이 있는 사람을 hashmap으로 구분했다.

체육복이 없으면서 예비 체육복이 있는 경우에도 체크를 해주어야 한다.

'Programmers > Level1' 카테고리의 다른 글

소수 만들기  (0) 2021.06.24
K번째수  (0) 2021.06.24
모든 레코드 조회하기  (0) 2021.06.22
폰켓몬  (0) 2021.06.22
완주하지 못한 선수  (0) 2021.06.22