[문제]
[JAVA]
- getOrDefault(Object key, V defalutValue) : 현재 Map에 key값이 존재한다면 그 값의 value값을 반환하고 없다면 defaultValue를 반환한다.
- keySet() : Map의 전체 Key값을 가져온다. key,value값을 가져오려면 entrySet()을 사용한다.
위 소스의 원리를 설명하자면
현재 참가자를 HashMap에 넣어주며 존재유무를 가려 +1를 해주고
완주자를 HashMap에 넣을땐 값을 -1해준다
결과적으로 HashMap안에 값이 0보다 크다면 참가자는 완주하지 못한 것이기에 그 값을 리턴해준다.
[Python]
파이썬...한줄이면 되버린다....무서운 파이썬...
Collections.Counter는 결과값은 요소의 갯수가 많은 순서인 딕셔너리 형태로 출력된다.
예를 들면 List형식을 Counter를 사용하면
ex) list = ['a','a','b','c','c'] => collections.Counter(list) => 결과 : Counter({'a':2,'c':2,'b':1})
ex) dic = {'가':3, '나':1, '다':6} => collections.Counter(dic) => 결과 : Counter({'다':6,'가':3,'나':1})
[Counter의 함수]의 대해서 좀 더 알아보자
[Counter의 함수]
- update : Counter의 값을 갱신한다. 딕셔너리의 update와 비슷하지만 입력값을 문자열 형태로도 입력이 가능하다.
- elements : 입력된 요소의 값을 풀어서 반환한다. 요소는 무작위로 반환되며 요소의 수가 1보다 작다면 elements는 출력하지 않는다.
- most_commmon(n) : 입력된 값의 요소들 중 빈도수가 높은 순으로 상위 n개를 list 안의 tuple 형태로 반환한다. n을 입력하지 않은 경우 요소 전체를 반환한다.
- subtract() : 요소를 빼내는 역할이다. 요소가 없는 경우는 음수값이 출력된다.
- 덧셈(+), 뺄셈(-) : 산술연산이 가능하다. 음수값은 측정하지 않는다.
- 교집합(&), 합집합( | )
'프로그래머스 > 해시' 카테고리의 다른 글
[프로그래머스 - 전화번호 목록] - Java, Python (0) | 2021.04.13 |
---|