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 |
Tags
- 재귀함수
- 네트워크플로우
- 취득후기
- 01BFS
- DFS
- 우선순위큐
- java
- GatherTown
- 시뮬레이션
- QUICKSTARTGUIDE
- 다이나믹프로그래밍
- 자바PS
- 엘라스틱서치
- PS
- 이젠 골드구현도 어렵네..
- 백준코딩테스트
- COSPRO
- 구현
- COSPROJAVA1급
- 다익스트라
- 백준
- 알고리즘
- 완전탐색
- spring
- 게더타운시작
- dp
- 세그먼트트리
- BFS
- YBMCOS
- deque
Archives
- Today
- Total
공부공간
BOJ - 2230 ) 수 고르기 본문
https://www.acmicpc.net/problem/2230
2230번: 수 고르기
첫째 줄에 두 정수 N, M(0≤M≤2,000,000,000)이 주어진다. 다음 N개의 줄에는 차례로 A[1], A[2], …, A[N]이 주어진다. 각각의 A[i]는 0 ≤ |A[i]| ≤ 1,000,000,000을 만족한다.
www.acmicpc.net
정렬 후, 투포인터를 이용해 원소의 차이를구해준다.
투포인터가 가리키는 차이가 M 을넘은경우 이후의 ii값증가는 볼필요가 없다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class 수고르기 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int num[]= new int[n];
int answer = 2147000000;
for(int i = 0 ; i < n ; i++) {
st= new StringTokenizer(br.readLine());
num[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(num);
int i = 0 , ii = 0;
for( ; ii < n && i < n ; ) {
if(num[ii] - num[i] >= m ) {
answer = answer > num[ii] - num[i] ? num[ii] - num[i] : answer;
i++;
}
else ii++;
}
System.out.println(answer);
}
}
'알고리즘 > 구현,시뮬' 카테고리의 다른 글
BOJ - 6497 ) 전력난 (0) | 2020.07.07 |
---|---|
BOJ - 1647 ) 도시분할계획 (0) | 2020.07.07 |
BOJ - 1806 ) 부분합 (0) | 2020.05.11 |
BOJ - 1644 ) 소수의 연속합 (0) | 2020.05.11 |
BOJ - 2470 ) 두 용액 (0) | 2020.05.11 |
Comments