0715 yesterdayReview

KOHHyunkyung·2021년 7월 14일
0

0714 PS : 뉴스 클러스터링, 캐시

뉴스 클러스터링

교집합과 합집합만 구하면 쉬운 문제였는데, 합집합의 개수를 세는 과정에서 애를 먹었던 문제였다.
문제 예시에 나와있는 부분들을 자세하게 안 읽었던 패착이 있었다... 나는 합집합 개수만 세면 되는줄 알았지..

집합연산은 Set, Counter를 통해 연산을 할 수 있는데
우선 Counter의 사용부터 보면 list에서 등장한 단어의 개수를 세는 용도로 많이 쓰인다.

Counter 함수

from collections import Counter

arr1 = ['HA', 'AN', 'ND', 'DS', 'SH', 'HA', 'AK', 'KE']
print(Counter(arr1))
# Counter({'HA': 2, 'AN': 1, 'ND': 1, 'DS': 1, 'SH': 1, 'AK': 1, 'KE': 1})

가장 헷갈렸던 부분은 elements()의 사용인데,

arr1 = ['HA', 'AN', 'ND', 'DS', 'SH', 'HA', 'AK', 'KE']
arr2 = ['SH', 'HA', 'AK', 'KE', 'HA', 'AN', 'ND', 'DS']

intersection_e = list((Counter(arr1)&Counter(arr2)).elements())
print(intersection_e) 
# ['HA', 'HA', 'AN', 'ND', 'DS', 'SH', 'AK', 'KE']

intersection = list((Counter(arr1)&Counter(arr2)))
print(intersection) 
#['HA', 'AN', 'ND', 'DS', 'SH', 'AK', 'KE']

intersection 과 intersection_e의 차이를 보면 중복된 원소를 갖고있냐의 차이를 볼 수 있다.

elements() 메서드를 사용하면 카운터 된 숫자 만큼의 요소를 리턴 받을 수 있다.

  • elements()의 사용예시
cnt = Counter(a=5,b=3)
#Counter({'a':5, 'b':3})
list(cnt.elements())
#['a','a','a','a','a','b','b','b']
list(cnt)
#['a','b']

캐시

LRU 알고리즘만 파악하고 있으면 쉽게 풀 수 있었던 문제 였다.
근데 문제에는 알고리즘 예시도 명시 안해줬다 검색해서 풀라는 건지..
'21년도 부터는 코테 중에 검색이 안되던데 ~이런 문제는 이제 안나오겠지... :(

내일 할 일

  1. 코테 2문제 풀기
  2. 코딜리티 적응하기
  3. bfs,dfs 알고리즘 공부
  4. 오늘의 리뷰를 내일로 미루지 말자!
profile
heeeeello

0개의 댓글