티스토리 뷰
반응형
문제
사람들은 각각 두가지의 취미를 가지고 있다고 한다. 취미는 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 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- 로그
- 크롬
- DP
- 유지보수
- 동적계획법
- REST API
- Warning
- 야근
- 자바스크립트개론
- 클린코드
- 마르코프 연쇄
- 몰라서망신
- 마르코프
- 자바스크립트 개론
- 디자인패턴
- GROUP BY
- Count
- markov chain
- 전략패턴
- CONVENTIONS
- html
- Markov
- 코딩의 기술
- RESTful
- 경고
- 문장 생성기
- was
- restful api
- Spring in Action
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함