220603 금 Algorithms TIL

bongf·2022년 6월 3일
0

알고리즘TIL

목록 보기
127/153

리트코드 347. Top K Frequent Elements Medium

Learned

  • 요소 개수가 많고 상위 n개만 추출할 때는 sort() 보다는 priority_queue 를 활용하자
  • 책 풀이는 우선순위큐를 사용한 버전, Counter의 빈도수가 높은 대로 추출하는 방법을사용했따.
  • 파이썬에서는 dictionary의 쌍을 dic.items() (dic은 내가 설정한 dictionart의 이름) 로 받을 수 있으며, 리스트로 변환하지 않고도 바로 sort() 가능하다.

프로그래머스 lev3 파괴되지 않은 건물 카카오 2022

  • 문제
  • 코드-자바
  • a - b - c- d 구역에 + 1 씩 더하고 싶다면 각 칸을 방문해서 더하는 방법으로 하면 시간초과. 나중에 한 번에 계산해주기 위해서 a,b,c,d 의 좌표에 더할 수를 입력해 둔다.
    • 누적합으로 a에 1을 두면 그림에서 보이는 전체 사각형에 + 1 이 된다. (나중에 가로 누적합 순회, 세로 누적합 순회 하면)
    • b, c까지만 +1 을 해주고 싶으니까 b+1 에 -1, c+1에 -1 을 둔다.
    • 그렇게 하면 d 부터는 모든 점에 -1 이 b, c에 의해 원래 수보다 한 번 더 연산이 일어나므로 이에 원래 수로 되돌리기 위해 + 1을 하는 방식이다.
profile
spring, java학습

0개의 댓글