728x90
반응형

<오늘의 학습>

1. 선택 정렬과 버블 정렬

2. 구구단 3,6,9단만 출력하기

3. 배열을 출력하되 홀수는 음수로 출력하기

4. 홀수/짝수 평균 구하기

5. 최댓값과 최솟값 차이 구하기

 

 

1. 선택 정렬과 버블 정렬

▶ 실습 내용

 

[JAVA] 선택 정렬과 버블 정렬

1. 선택 정렬 ▶ 코드 /*선택정렬*/ int[] arr={9,6,7,3,5};//정렬할 배열 int index, min, temp;//최솟값이 들어있는 인덱스 변수, 최솟값을 비교할 변수, 값을 변경할 때 사용할 변수 for(int i=0;i6? index=j;//index=1

deliciouscode.tistory.com

 

 

 

2.  구구단 3, 6, 9단만 출력하기

▶ 코드

		for(int i=3; i<=9; i+=3){
			System.out.println("<"+i+"단>");
			
			for(int j=1; j<=9; j++){
				System.out.println(i + "*" + j + "=" + (i*j));
			}
			System.out.println();	//줄바꿈
		}

 

▶ 출력 결과

<3단>
3*1=3
3*2=6
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
3*9=27

<6단>
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
6*7=42
6*8=48
6*9=54

<9단>
9*1=9
9*2=18
9*3=27
9*4=36
9*5=45
9*6=54
9*7=63
9*8=72
9*9=81

 

 

 

3.  배열을 출력하되 홀수는 음수로 출력하기

  •  6개의 숫자를 입력받아 배열에 저장해라. 만약 입력받은 숫자가 홀수일 경우 음수로 바꿔 저장한다.

 

▶코드

		Scanner scan = new Scanner(System.in);
		int arr[] = new int[6];

		for(int i=0; i<6; i++){
			System.out.print((i+1)+"번째 숫자를 입력하세요:");
			int num = scan.nextInt();

			if(num%2 != 0){	//홀수
				arr[i] = -num;
			} else {	//짝수
				arr[i] = num;
			}
		}
		System.out.println(Arrays.toString(arr));

		scan.close();

 

▶출력 결과

1번째 숫자를 입력하세요:1
2번째 숫자를 입력하세요:2
3번째 숫자를 입력하세요:3
4번째 숫자를 입력하세요:4
5번째 숫자를 입력하세요:5
6번째 숫자를 입력하세요:6
[-1, 2, -3, 4, -5, 6]

 

 

 

4. 홀수/짝수 평균 구하기

  • 배열 {15, 22, 33, 50, 19, 2}의 홀수들의 평균과 짝수들의 평균을 각각 구하시오.

 

▶코드

		int arr[] = {15, 22, 33, 50, 19, 2};
		
		int oddSum = 0; //홀수 합
		int oddCnt = 0;	//홀수 갯수
		
		int evenSum = 0; //짝수 합
		int evenCnt = 0; //짝수 갯수
		
		for(int num : arr){
			if(num % 2 == 0){
				evenSum += num;
				evenCnt++;
			}//짝수
			else {
				oddSum += num;
				oddCnt++;
			}//홀수
		}
		
		System.out.printf("홀수 평균:%.2f\n", (double)oddSum/oddCnt);
		System.out.printf("짝수 평균:%.2f\n", (double)evenSum/evenCnt);

 

▶출력 결과

홀수 평균:22.33
짝수 평균:24.67

 

 

 

5.  최댓값과 최솟값 차이 구하기

  • 배열 {40, -20, -30, -10, 50} 에서 가장 큰 수와 가장 작은 수의 차이를 구하라.
  • 단, 음수는 절대 값으로 계산하라.
  • ex) 가장 큰 수 : 50, 가장 작은 수 : -10 => 결과 40

 

▶코드

		int arr[] = {40, -20, -30, -10, 50};
		int max = Math.abs(arr[0]);
		int min = Math.abs(arr[0]);
		
		for(int i=0; i<arr.length; i++){
			max = Math.max(max, Math.abs(arr[i]));
			min = Math.min(min, Math.abs(arr[i]));
		}
		
		System.out.println("arr 배열에서 가장 큰 수와 가장 작은 수의 차이(음수는 절댓값으로 계산):"+(max-min));

 

▶출력 결과

arr 배열에서 가장 큰 수와 가장 작은 수의 차이(음수는 절댓값으로 계산):40

 

 

 

 

 


2023년 5월 26일 금요일

<11일차 수업 후기>

아직은 for(;;)문이 더 익숙하지만 파이썬을 조금 공부해서 그런지 for(:) 문도 어렵지 않게 작성할 수 있었다. 같은 알고리즘이라도 언어마다 작성법이 다르지만, 하나의 언어를 공부한다면 다른 언어를 공부할 때 도움이 많이 된다고 생각했다.

나는 C언어를 주로 공부하고 사용했던 터라 자바의 메소드나 함수는 자주 사용해보지 않았는데, Arrays와 Math 함수를 사용하면 코드가 더 간결해져서 코드를 읽기 편했다. 조금 더 학습하고 연습해서 지금보다 간결하고 깔끔한 코드를 작성하고 싶다.

728x90
반응형

+ Recent posts