코딩가딩가

[JAVA]BOJ 2230, 수 고르기

Noooodle 2024. 8. 4. 15:30

같은 수일 수도 있다. 이 말때문에 왜틀림???? 을 반복했다.. 

인덱스가 같으면 안된다

1 2 3 있으면 2를 두 번 고른다는게 아니라 1 2 2 이렇게 2개 있을 수 있다는 말..

두포인터 썼고 쉬우니까 그냥 넘어감..

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BOJ2230 {
    public static int getMinusMin(int[] numbers, int M){
        int i = 0, j = 1, min = 2000000000, result;

        while(j<numbers.length){
            result = numbers[j] - numbers[i];
            if(result == M)
                return result;
            else if(result > M){
                min = Math.min(result, min);
                i++;
                if(j == i)
                    j++;
            }
            else
                j++;
        }

        return min;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N, M, i;
        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());
        int[] numbers = new int[N];

        for(i=0;i<N;i++)
            numbers[i] = Integer.parseInt(br.readLine());
        
        Arrays.sort(numbers);
        System.out.println(getMinusMin(numbers, M));
    }
}

'코딩가딩가' 카테고리의 다른 글

[JAVA]BOJ 11728, 배열 합치기  (0) 2024.08.05
[JAVA]BOJ 12891, DNA 비밀번호  (0) 2024.08.04
[JAVA]BOJ 1806, 부분합  (0) 2024.08.03
[JAVA]BOJ 2110, 공유기 설치  (0) 2024.08.02
[JAVA]BOJ 6236, 용돈 관리  (0) 2024.08.02