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
반응형
'HRD_훈련 > JAVA' 카테고리의 다른 글
[JAVA] static 멤버와 상속 (13일차) (0) | 2023.05.31 |
---|---|
[JAVA] 클래스 실습 (12일차) (0) | 2023.05.30 |
[JAVA] 반복문과 배열, 랜덤 함수 실습 (10일차) (0) | 2023.05.25 |
[JAVA] 예외 처리 (9일차) (0) | 2023.05.24 |
[JAVA] AWT와 프레임 출력 (9일차) (0) | 2023.05.24 |