Day10_01. 사용자로부터 5개의 점수를 입력받아 입력받은 점수를 우선 출력하고,
입력받은 점수를 내림차순 정렬하여 다시 출력
내림차순 :(selection sort)선택정렬
1. 주 대상자와 비교대상자가 존재한다.
2. 주 대상자는 처음부터 비교대상자는 주 대상자의 다음부터 시작
3. 비교대상자가 마지막에 도달하면 주대상자가 그 다음으로 이동한다.
package dya10;
import java.io.*;
public class Day10_01 {
public static void main(String[] args)
throws IOException{
/*사용자로부터 5개의 점수를 입력받아 입력받은 점수를 우선 출력하고,
입력받은 점수를 내림차순 정렬하여 다시 출력
내림 차순 : 정렬 알고리즘*/
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int arr[] = new int[5];
for(int i=0;i<arr.length;i++) {
System.out.print("점수"+(i+1)+":");
arr[i] = Integer.parseInt(br.readLine());
}
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("----------------------------");
for(int i=0;i<arr.length-1;i++) {//주 대상자를 담당할 for문
for(int j=i+1;j<arr.length;j++) {//비교대상자를 담당할 for문
if(arr[i]<arr[j]) {
int temp =arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}
2차원 배열
1. 2차원 배열 선언
자료형 배열명[][];
2. 2차원 배열 메모리 생성
배열명 =new 자료형[행][열];
3. 2차원 배열 초기화하기
배열명 [행][열] = 값;
1차원 배열 : 기본 데이터를 담을 수 있는 1차원 배열의 주소.
2차원 배열 : 주소 정보를 가지고 있는 1차원 배열의 주소.
2차원 이상의 배열은 1차원 배열의 확장이다.
선언시 사용하는 [ ] 위치의 의미
1. int []i,j,k; = 모두 1차원 배열
2. int i[],j; = i는 1차원 배열, j는 변수
3. int []i[],j; = i는 2차원 배열, j는 1차원 배열
4. int i[][],j; = i는 2차원 배열, j는 변수
5.int []i[],j[]; = i,j 모두 2차원 배열
package day10;
public class Day10_02 {
public static void main(String[]args) {
int arr[][];
arr = new int[3][2];
arr[0][0] = 10;
arr[0][1]=20;
// arr[0][2]=30;// 범위 초과
arr[1][0] = 40;
System.out.println("arr[0][0]:"+arr[0][0]);
System.out.println("arr[0][1]:"+arr[0][1]);
// System.out.println("arr[0][2]:"+arr[0][2]);
System.out.println("arr[1][0]:"+arr[1][0]);
System.out.println("arr[1][1]:"+arr[1][1]);
for(int i=0;i<arr.length;i++) { //행을 담당
for(int j=0;j<arr[i].length;j++) { // 열을 담당
System.out.print(arr[i][j]+" ");
}
}
}
}
package day10;
public class Day10_03 {
public static void main(String[] args) {
double a[] = new double[5];
a[0] =1.1;
double b[] = new double[3];
b[0]=1.2;
double c[] = new double[7];
double arr[][]=new double[3][];
arr[0] = a;
arr[1] = b;
arr[2] = c;
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}

Day10_04. 2차원 배열을 이용하여 왼쪽그림과 같이 출력하기
package day10;
public class Day10_04 {
public static void main(String[] args) {
int arr[][]=new int [5][5];
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
if(i==j) {
arr[i][j]=2;
}else {
arr[i][j] = 1;
}
}
}
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}

Day10_05. 사용자로부터 두수를 입력받고 그 입력받은 두수를 더하여 출력.
package day10;
import java.io.*;
public class Day10_05 {
// 사용자로부터 두수를 입력받고 그 입력받은 두수 더하여 출력
public static void main(String[] args)
throws IOException{
BufferedReader br =
new BufferedReader (new InputStreamReader(System.in));
int arr[][]=new int[3][3];
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length-1;j++) {
System.out.print(i+1+"번째 "+ (j+1)+"번째 수:");
arr[i][j] = Integer.parseInt(br.readLine());
}
arr[i][2] = arr[i][0]+arr[i][1];
System.out.println();
}
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i][0]+"+"+arr[i][1]+"="+arr[i][2]);
}
}
}

Day10_06.
학생 5명의 시험점수 3개를 입력받아 총점과 평균을 구하여 출력하고
평균을 기준으로 내림차순 정렬.
package day10;
import java.io.*;
public class Day10_06 {
public static void main(String[] args)
throws IOException{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int arr[][]=new int[5][4];
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length-1;j++) {
System.out.print(i+1+"번 학생의 점수"+(j+1)+":");
arr[i][j] = Integer.parseInt(br.readLine());
}
arr[i][3]= (arr[i][0]+arr[i][1]+arr[i][2])/3;
System.out.println();
}
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
for(int i=0;i<arr.length-1;i++) {
for(int j=i+1;j<arr.length;j++) {
if(arr[i][3]<arr[j][3]) {
int temp[][]= new int [5][];
temp[i]=arr[i];
arr[i]=arr[j];
arr[j]=temp[i];
}
}
}
System.out.println("-------------------------------");
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
강사님 풀이
package day11; import java.io.*; public class Day11_01 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int arr[][]=new int[5][5]; for(int i=0;i<arr.length;i++) { for(int j=0;j<arr[i].length-2;j++) { System.out.print((i+1)+"번 학생의 점수 "+(1+j)+"="); arr[i][j] = Integer.parseInt(br.readLine()); arr[i][3] += arr[i][j]; } arr[i][4] = arr[i][3]/3; System.out.println(); } System.out.println("-------------------"); for(int i=0;i<arr.length;i++) { for(int j=0;j<arr[i].length;j++) { System.out.print(arr[i][j]+" "); } System.out.println(); } System.out.println("---------------------"); for(int i=0;i<arr.length-1;i++) { for(int j=i+1;j<arr.length;j++) { if(arr[i][4]<arr[j][4]) { int temp [] =arr[i]; arr[i]= arr[j]; arr[j] = temp; } } } for(int i=0;i<arr.length;i++) { for(int j=0;j<arr[i].length;j++) { System.out.print(arr[i][j]+" "); } System.out.println(); } } }
'개발자 > 백엔드 웹 개발자 과정(국비)' 카테고리의 다른 글
| 2022년 11월 18일 _ 13회차(OOP) (0) | 2022.11.18 |
|---|---|
| 2022년 11월 16일 _ 11회차(메서드) (0) | 2022.11.16 |
| 2022년 11월 14일 _ 9회차(배열) (0) | 2022.11.14 |
| 2022년 11월 11일 _ 8회차(for문, while,do-while,보조 제어문(break,continue)) (0) | 2022.11.11 |
| 2022년 11월 10일 _ 7회차(다중 for문) (0) | 2022.11.10 |