Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Shortest path
- Euler path
- POJ
- graph modeling
- mathematics
- bitmask
- disjoint-set
- Greedy
- Sieve_of_Eratosthenes
- Segment Tree
- Algospot
- GCD
- scc
- Cycle detecting
- 백준
- DynamicProgramming
- graph
- implementation
- Eulerian circuit
- hashing
- flows
- BFSDFS
- BST
- dynamic programming
- Eulerian path
- CS Academy
- Dag
- backtracking
- Euler circuit
- BOJ
Archives
- Today
- Total
그냥 하는 노트와 메모장
BOJ 1797 균형잡힌 줄서기 본문
* BOJ 1797 균형잡힌 줄서기
[분류 - 정렬, 그리디]
1. 브루트포스로 계산하기에는 O(N^2)은 시간적으로 부담이되기에 일단 x축을 기준으로 정렬한다.
2. x좌표가 작은 값에서 큰 값으로 순회를 시작하는데, 여자면 -1을 할당하고 남자면 1을 할당하여 누적합을 구한다. 이 때 순회하다가 이전에 나왔던 누적합(bef)이 존재한다면 현재와 bef를 비교하여 x좌표가 얼마나 차이가 있는지 계산한다. 이 값 중에 가장 큰 값을 출력해주면 된다.
※ 이 때 누적합이 최초로 등장한 값만 저장해주면 된다. 문제에서 요구하는 것은 x 간격이 가장 큰 것을 원하므로 임의의 누적합이 어디서 최초로 등장했는지를 저장해두고 나중에 다시 이 누적합이 나오면 그것이 곧 최대 간격의 후보를 의미한다.
'Solved problems' 카테고리의 다른 글
BOJ 1040 정수 (0) | 2020.05.24 |
---|---|
BOJ 1176 섞기 (0) | 2020.05.24 |
BOJ 3032 승리 (0) | 2020.05.21 |
BOJ 12103 짝합 수열, 7976 수열 (0) | 2020.05.21 |
BOJ 15807 *빛*영*우* (0) | 2020.05.21 |
Comments