Java

[Java] 배열 문제

웨일파도 2023. 3. 9. 17:44
반응형

2023.03.09 수업 4일차

package chapter06;

import java.util.Arrays;
import java.util.Scanner;

public class newProblem_7class {

	public static void main(String[] args) {

		// 1-1. Scanner 클래스를 통해 6개의 공간을 가지는 int 형 배열에 값을 입력한다.
		Scanner scan = new Scanner(System.in);
		int arr[] = new int[6];
		int num;
		int idx=0;
		
		System.out.println("숫자를 입력하세요.");
		
		for (int i=0; i<arr.length; i++) {
			num = scan.nextInt();
			if (num <= 0) {
				System.out.println("1 이상의 숫자를 입력하시오");
				i--;
			} else {
				arr[idx] = num;
				idx++;
			}
		}
		System.out.println("1번 문제 답 : ");
		System.out.println(Arrays.toString(arr));
		
		
		
		// 1-2. 입력받은 배열의 숫자에 순차적으로 접근하여 홀수일 경우 음수로 바꿔준다.
		
		for (int i=0; i<arr.length; i++) {
			if (arr[i] % 2 == 1) {
				arr[i] = -arr[i];
			}
		}
		
		System.out.println("2번 문제 답 : ");
		System.out.println(Arrays.toString(arr));

		
		// 1-3. 배열 내 양수의 평균을 구한다. (소수점까지)
		
		int sum = 0;
		int count = 0;
		
		for (int i=0; i<arr.length; i++) {
			if (arr[i] > 0) {
				sum += arr[i];
				count++;
			}
		}
		
		System.out.println("3번 문제 답 : ");
		System.out.println("양수 값 평균 : " + (double) sum / count);

		 
		
		// 1-4. 배열 내 음수의 개수를 구한다.
		
		System.out.println("4번 문제 답 : ");
		System.out.println("음수값의 개수 : " + (arr.length-count));

		
		// 1-5. 배열 내 값을 재정렬한다. (양수, 음수, 양수, 음수 반복. 순서를 그대로)
				
		int plusArray[] = new int[arr.length];
		int minusArray[] = new int[arr.length];
		
		int index = 0;
		int index2 = 0;
		
		for(int i=0; i<arr.length; i++) {
			if(arr[i] > 0) {
				plusArray[index] = arr[i];
				index++;
			} else if(arr[i] < 0) {
				minusArray[index2] = arr[i];
				index2++;
			}
		}
		
		
		int newArray[] = new int[arr.length];
		
		index = 0;
		
		for(int i=0; i<arr.length; i++) {
			if(plusArray[i] != 0) {
				newArray[index++] = plusArray[i];
			}
			if(minusArray[i] != 0) {
				newArray[index++] = minusArray[i];
			}
		}
		
		System.out.println("5번 문제 답 : ");
		System.out.println(Arrays.toString(newArray));

		
		// 1-6. 배열 내에서 2개 값의 수의 차가 가장 큰 경우를 구하라.
		// 단, 음수는 절대값을 씌우고 (양수) 계산 함.
		// ex) 가장 큰 수의 20과 작은 수인 -3 (계산은 3으로) 두 개를 구함. -> 17
		

		
		for (int i = 0; i < arr.length; i++) {
			arr[i] = Math.abs(arr[i]);
		}
		
		System.out.println("6번 문제 답 : ");
		
		Arrays.sort(arr);
		
		System.out.println("절대값이 가장 큰 수 : " + arr[arr.length-1]);
		System.out.println("절대값이 가장 작은 수 : " + arr[0]);
		System.out.println("값의 차이 : " + (arr[arr.length-1] - arr[0]));


		
		
		
	}

}

2023.03.09. 수업4일차

 

반응형

'Java' 카테고리의 다른 글

[JAVA] 오라클 DB연결  (0) 2023.04.04
[Java] 다차원배열  (0) 2023.03.10
[Java] 배열에서 중복 값 제거하기  (0) 2023.03.09
[Java] 버블 정렬 알고리즘  (0) 2023.03.08
[Java] 선택 정렬 알고리즘  (0) 2023.03.08