일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이분 탐색
- 싸피
- 에라토스테네스의 체
- JavaScript
- boj
- BFS
- 그래프
- 13164
- 수학
- 브루트포스
- 트리
- 2357
- 맵
- 플로이드-워셜
- 슬라이딩 윈도우
- 구현
- 문자열
- 투 포인터
- SSAFY
- 그리디
- 모던 JavaScript 튜토리얼
- 해시 테이블
- DFS
- Python
- 세그먼트 트리
- 정렬
- DP
- 정수론
- 누적 합
- 애드 혹
- Today
- Total
목록전체 글 (271)
흙금이네 블로그
아이디어 탄산 내성 K보다 큰 2의 거듭제곱의 개수를 구하고, 이변을 통해 승리할 수 있는 횟수를 더한다. 풀이 def solution(): N, M, K = map(int, input().split()) n = 1 res = 0 while n < N: n *= 2 if K < n: if M == 0: break M -= 1 res += 1 print(res) solution()
아이디어 최솟값을 찾는 우선순위 큐, 최댓값을 찾는 우선순위 큐, 남은 값의 개수를 저장하는 딕셔너리를 사용하여 해결한다. 풀이 우선순위 큐를 사용하기 위해 heapq 모듈의 heappush와 heappop을 불러온다. 최댓값을 저장하는 우선순위 큐 max_heap과 최솟값을 저장하는 우선순위 큐 min_heap을 생성하고, 남은 데이터의 총 개수 total, 남은 값의 개수를 저장하는 딕셔너리 cnt_dict를 생성한다. k번의 for문에서 연산이 I이면 cnt_dict를 참고해 추가하려는 값의 남은 개수가 0이면 min_heap과 max_heap에 추가하고, 그렇지 않으면 두 우선순위 큐에 추가하지 않고 cnt_dict의 값과 total을 1 증가시킨다. 연산이 D이면 cnt_dict를 참고해 남은 ..
아이디어 BFS로 건물 내부와 외부를 구분한 후, 외부에 보이는 벽면의 수를 구한다. 풀이 #1 (Python) 문제의 정육각형 좌표 값 y가 홀수일 때를(인덱스 기준 짝수) 기준으로 위치 변화 값들을 튜플로 리스트 delta에 저장한다. 지도의 너비 W, 지도의 높이 H를 입력 받고, 집의 건물 배치를 2차원 리스트 buildings에 저장한다. 지도 가장자리 부분의 좌표들을 인자로 함수 bfs를 호출하여 건물 내부와 외부를 구분한다. 인덱스가 홀수인 행이면서 행의 위치가 변하면 delta에서 열 변화 값을 1을 감소시켜 위치 변화 값을 조정한다. 함수 bfs 호출로 지도 buildings에서 외부 공간은 -1, 내부 공간에서 건물이 있는 곳은 1, 없는 곳은 0의 값을 갖게 된다. 이후 건물이 있는 ..