ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 알고리즘(4)
    자바페스티벌 2022. 5. 6. 10:01

    ex22 별 출력

    사용자에게 입력받아 배열의 인덱스의 수 만큼 별을 출력해보겠습니다.

    int[] arr = new int[5];
    Scanner sc = new Scanner(System.in);
    
    for (int i = 0; i < arr.length; i++) {
    	System.out.print(i + "번째 별의 수 : ");
    	arr[i] = sc.nextInt();
    }
    
    for (int i = 0; i < arr.length; i++) {
    	System.out.print(arr[i] +" : ");
    	for (int j = 1; j <= arr[i]; j++) {
    		System.out.print("*");
    	}System.out.println();
    }

     

     

     

    ex23 곱셈

    단 수와 곱해지길 원하는 수를 입력하여 이와 같이 출력되게 해보겠습니다.

    System.out.print("단수입력 : ");
    Scanner sc = new Scanner(System.in);
    int num1 = sc.nextInt();
    		
    System.out.print("어느 수까지 출력 : ");
    int num2 = sc.nextInt();
    		
    System.out.println(num1 + "단");
    for(int i = 1; i<=num2; i++) {
    	System.out.println(num1 +"*" + i +"=" + num1*i);
    }

     

     

     

    ex24 2진수 변환

    10진수 정수를 입력받아 2진수로 변환해서 출력해보겠습니다.

    System.out.println("숫자입력 >> ");
    Scanner sc = new Scanner(System.in);
    int input = sc.nextInt();
    
    // 2진수의 수를 저장할 배열 생성
    int[] arr = new int[10];
    		
    int i = 0; // 배열의 위치를 지정하기 위한 값
    
    while(input>=2) {
    	// 배열의 위치가 0인 곳부터 차례로 2로 나누어진 나머지 값을 저장
    	arr[i] = input%2;
    	i++;
    	// 입력값의 몫을 구할 수 있는 연산
    	input /= 2;
    }
    		
    arr[i] = input;
    		
    // 배열의 순서를 거꾸로 하여 출력하기
    for (int j =i; j >= 0; j--) {
    	System.out.print(arr[j] +" ");
    }

     

     

     

    ex25 거리가 가장 작은 숫자의 위치

    아래와 같이 숫자가 담긴 1차원 배열이 주어졌을 때, 두 개의 숫자를 뽑아 서로의 거리를 비교한 후 거리가 가장 작은 숫자의 위치(index)를 출력해보겠습니다.

    int[] point = {92,32,52,9,81,2,68};
    
    // 기준값 만들기
    int min = Math.abs(point[0] - point[1]);
    
    // 배열의 위치를 기억할 수 있는 변수
    int a = 0;
    int b = 0;
    
    // 반복적인 작업으로 배열의 거리값 비교하기
    for (int j = 0; j < point.length; j++) {
    	for (int i = 0; i < point.length; i++) {
    		if (j != i) {
    			if (Math.abs(point[j] - point[i]) < min) {
    				min = Math.abs(point[j] - point[i]);
    				a = j;
    				b = i;
    			}
    		}
    	}
    }
    
    System.out.println("result = [" + a +", " + b + "]");

     

     

     

    ex26 별 출력

    다음과 같은 결과를 출력해보겠습니다.

    for(int i = 1; i <= 5; i++) {
    	for(int j =4; j >= i; j--) {
    		System.out.print(" ");
    	}
    	for(int j =1; j <=i; j++) {
    		System.out.print("*");
    	}System.out.println();
    }

     

     

     

    ex27 오름차순 정렬

    5개의 정수를 입력 받아 오름차순 정렬하여 출력하는 프로그램을 구현해보겠습니다.

    Scanner sc = new Scanner(System.in);
    int[] arr = new int[5];
    for(int i=0; i < arr.length; i ++) {
    	System.out.print(i+1+"번째 수 입력 : ");
    	arr[i] = sc.nextInt();
    }
    		
    for(int k =1; k < arr.length; k++) {
    	for(int j =0; j< arr.length - k; j++) {
    		if(arr[j] > arr[j+1]) {
    			int temp = arr[j];
    			arr[j] = arr[j+1];
    			arr[j+1] = temp;
    		}
    	}
    }
    		
    System.out.println("정렬 후");
    for(int  = 0; i< arr.length; i++) {
    	System.out.print(arr[i] + " ");
    }

     

     

     

    ex28 배열 90도 회전

    아래와 같은 2차원 배열을 왼쪽으로 90도 회전하여 출력해보겠습니다.

    int[][] arr = new int[5][5];
    
    System.out.println("90도 회전");
    
    int cnt = 1;
    
    for (int j = 0; j < 5; j++) {
    	for (int i = 4; i >= 0; i--) {
    		arr[i][j] = cnt;
    		cnt++;
    	}
    }
    
    for (int j = 0; j < 5; j++) {
    	for (int i = 0; i < 5; i++) {
    		System.out.print(arr[j][i]+"\t");
    	}System.out.println();
    }

    '자바페스티벌' 카테고리의 다른 글

    자바 알고리즘(5)  (0) 2022.05.06
    자바 알고리즘(3)  (0) 2022.05.05
    자바 알고리즘(2)  (0) 2022.05.04
    자바 알고리즘 (1)  (0) 2022.05.04

    댓글

Designed by Tistory.