티스토리 뷰

algorithm

가장 많은 취미 찾기

북항 2018. 7. 26. 10:31
donaricano-btn
반응형

문제


사람들은 각각 두가지의 취미를 가지고 있다고 한다. 취미는 String 배열인 first와 second에 나누어져 들어온다. 예를 들어 i번째 사람의 첫번째 취미는 first[i] 에 문자열로 저장되어 있고, 두번째 취미는 second[i] 에 저장되어 있다. 이때 가장 많은 사람들이 즐기는 취미 생활은 총 몇 명이 즐기고 있는지 리턴하라.



입 출력 예제


입력

String[] first = {'a','b','a','a'};

String[] second = {'b','a','b','b'};


출력

4



풀이


단순히 생각해서 이중반복문을 사용해서 전체 배열을 돌면서 같은 이름의 숫자를 세면 된다. 이중반복문을 사용하는 것이 코드를 지저분하게 보이기 때문에 Map객체를 이용해 조금 더 간결한 코드를 얻을 수 있다. Map을 사용하는 것이 쉽게 떠올려지지 않는다면 이중반복문을 사용해도 상관없다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public int hobby(String[] first, String[] second) {
        Map<String, Integer> map = new HashMap<>();
        
        for (int i = 0; i < first.length; i++) {
            map.put(first[i], 0);
            map.put(second[i], 0);
        }
        
        for (int i = 0; i < first.length; i++) {
            map.put(first[i], map.get(first[i])+1);
            map.put(second[i], map.get(second[i])+1);
        }
        
        int max = 0;
        for (Integer n : map.values()) {
            if (n > max) {
                max = n;
            }
        }
        
        return max;
    }
cs


반응형

'algorithm' 카테고리의 다른 글

악수 문제(카달란 수)  (0) 2018.07.31
기부금 최대값 찾기  (0) 2018.07.30
배낭 문제(냅색 문제)  (0) 2018.07.29
가장 먼 출구 찾기 (너비우선탐색)  (0) 2018.07.27
가장 큰 곱 만들기 문제  (0) 2018.07.26
donaricano-btn
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함