JAVA를 JAVA라

[JAVA] 배열에서 가장 거리가 짧은 것의 쌍 출력하기 본문

JAVA/풀어봅시다 (eclipse)

[JAVA] 배열에서 가장 거리가 짧은 것의 쌍 출력하기

샛별KIM 2021. 5. 26. 14:41

1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오. (단 점들의 배열은 모두 정렬되어있다고 가정한다.) ex. S={1, 3, 4, 8, 13, 17, 20}일 때 출력은 3 : 4, 1

package may28;

import java.util.Arrays;

public class Daum {
	public static void main(String[] args) {
		// int[] s = { 1, 3, 4, 8, 13, 17, 20 };
		int[] s = new int[7];
		for (int i = 0; i < s.length; i++) {
			s[i] = (int) (Math.random() * 20 + 1);
		}
		Arrays.sort(s);
		System.out.println(Arrays.toString(s));

		int cnt = s[1] - s[0];// 각 거리차이를 저장할 변수
		int fir = 0, sec = 0;// 짧은 거리의 첫번째 수, 두번째 수 저장할 변수

		for (int i = 0; i < s.length - 1; i++) {
			if (cnt > s[i + 1] - s[i] || cnt == s[i + 1] - s[i]) {
				fir = s[i];
				sec = s[i + 1];
				cnt = s[i + 1] - s[i];
			}
		}
		System.out.println(fir + " : " + sec + ", " + cnt);
	}
}

 

//////출력

3 : 4, 1

'JAVA > 풀어봅시다 (eclipse)' 카테고리의 다른 글

[JAVA] 타노스의 배열 제거(다른 해답)  (0) 2021.05.26
[JAVA] 타노스의 배열 제거  (0) 2021.05.26
[JAVA] 점수 합, 평균 내고 등급 나누기  (0) 2021.05.26
[JAVA] 로또  (0) 2021.05.26
[JAVA] 시저 암호  (0) 2021.05.26
Comments