본문 바로가기

프로그래머스/해시

[프로그래머스 - 완주하지 못한 선수]- Java, Python

[문제]

문제

 

[JAVA]

JAVA

  • getOrDefault(Object key, V defalutValue) : 현재 Map에 key값이 존재한다면 그 값의 value값을 반환하고 없다면 defaultValue를 반환한다.
  • keySet() : Map의 전체 Key값을 가져온다. key,value값을 가져오려면 entrySet()을 사용한다.

위 소스의 원리를 설명하자면

현재 참가자를 HashMap에 넣어주며 존재유무를 가려 +1를 해주고

완주자를 HashMap에 넣을땐 값을 -1해준다

결과적으로 HashMap안에 값이 0보다 크다면 참가자는 완주하지 못한 것이기에 그 값을 리턴해준다. 

 

[Python]

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와 비슷하지만 입력값을 문자열 형태로도 입력이 가능하다.

update()

 

  • elements : 입력된 요소의 값을 풀어서 반환한다. 요소는 무작위로 반환되며 요소의 수가 1보다 작다면 elements는 출력하지 않는다.

elements()

 

  • most_commmon(n) : 입력된 값의 요소들 중 빈도수가 높은 순으로 상위 n개를 list 안의 tuple 형태로 반환한다. n을 입력하지 않은 경우 요소 전체를 반환한다.

most_common(n)

 

  • subtract() : 요소를 빼내는 역할이다. 요소가 없는 경우는 음수값이 출력된다.

subtract()

 

  • 덧셈(+), 뺄셈(-) : 산술연산이 가능하다. 음수값은 측정하지 않는다.

덧셈,뺄셈

 

  • 교집합(&), 합집합( | )

교집합,합집합