![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/yDoJw/btsGezntkfI/PieyKtLNIoBU1GmlSME6x1/img.png)
백준 11003번 최솟값 찾기 https://www.acmicpc.net/problem/11003 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net ● N과 L이 5,000,000이하 이므로 일반적으로 O(nlogn)의 시간복잡도를 가지는 정렬 알고리즘을 사용할 수 없음 ● O(n)의 시간 복잡도로 해결해야 하므로 슬라이싱 윈도우를 덱으로 구현하기 ● 덱의 마지막 위치에서부터 now보다 큰 값은 덱에서 제거 ● 덱의 마지막 위치에 now값 저장 ● 덱의 첫 번째 위치에서부터 L의 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/l3g17/btsGd9Qlf83/oQpd24pddZUIT6ML2FhVVK/img.png)
백준 1253번 좋다 https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net ● N이 최대 2000이므로 시간 복잡도는 최소 O(nlogn)이 되어야 하므로 투 포인터 알고리즘 사용하기 ● 정렬된 데이터에서 자기 자신을 좋은 수 만들기에 포함시키면 안 됨 ● 수를 입력받아 배열에 입력받은 후 정렬 ● 투 포인터 i,j를 배열 A 양끝에 위치시키고 적합한 투 포인터 이동원칙을 활용, 판정이 되는 수를 K라고 지정 ● 투 포인터 이동 원칙 A[i] + A[j] < K : i++; A..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/0eYAv/btsGeOdIJDh/vukx2q5EUJ4ZT2COkybmB1/img.png)
백준 2018번 수들의 합 5 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net ● start_index와 end_index를 1로 초기화해주고 count도 1로 초기화(N만 고를 때의 경우의 수를 미리 더해놓기) ● 투 포인터 이동 원칙에 따라서 반복문 시행하기 sum > N : sum = sum - start_index; start_index++; sum == N : end_index++; sum = sum + end_i..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b9iAxM/btsFirYFePa/SZwbjyNvTPKEGsKKMM6ESK/img.jpg)
Algorithm 공부 #03 - 자료구조(투 포인터와 슬라이딩 윈도우) 투 포인터 ● 2개의 포인터로 알고리즘의 시간 복잡도를 최적화함 백준2018번 연속된 수들의 합 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net ※ start_index와 end_index를 1로 초기화해주고 count도 1로 초기화(N만 고를 때의 경우의 수를 미리 더해놓기) ※ ● 투 포인터 이동 원칙에 따라서 반복문 시행하기 sum > N : s..
- Total
- Today
- Yesterday
- 세그먼트 트리
- 반복문
- 알고리즘 공부
- 스택
- 우선순위 큐
- 자료구조
- html
- c++ string
- Do it!
- 알고리즘
- 자바
- BFS
- 백준 풀이
- C++
- 유클리드 호제법
- CSS
- 카운팅 정렬
- 유니온 파인드
- 자바스크립트
- js
- 이분 매칭
- 백준
- DP
- java
- C++ Stack
- 에라토스테네스의 체
- 최단 경로
- HTML5
- 투 포인터
- DFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |