웹_프론트_백엔드/단과

[단과_JAVA] 2020.01.31

shine94 2020. 2. 3. 12:48

1. 2차원 배열
 : 배열 안에 배열
   한 번 접근하면 행, 두 번 접근하면 열
   따라서 대괄호가 2번 필요하다

 


2. 2차원 배열 선언
    자료형[][] 배열명 = new 자료형[행][열];
    자료형[][] 배열명 = {
          {값1, 값2, 값3},
          {값4, 값5, 값6}, ...
    };

 


3. 2차원 배열 사용
    배열명[행][열];         //값
    배열명[행][열] = 값;  //저장공간
    2차원 배열명[행] = 1차원 배열명[index];
    //저장공간             //값
    
    2차원 배열명[행] = 1차원 배열명;
    arrData[0] = arData;

 


4. 정방배열과 비정방배열
 : 모든 행에 열의 개수가 같으면 정방배열, 
   행마다 열의 개수가 다르면 비정방배열

 

 

5. 일차원 배열은 배열명에 ar을, 이차원 배열은 배열명에 arr을 붙여준다(개발자들끼리 약속!)

 


6. 오늘 실습 코드
1) ArTask

package day13;

import java.util.Scanner;

public class ArTask {
	public static void main(String[] args) {
		//소문자만 대문자로 바꿔주는 프로그램 만들기
		//입력 예)asDfGHjKL!@#$1234
		//출력 예)ASDFGHJKL!@#$1234
		
		Scanner sc = new Scanner(System.in);
		String result = "";
		String data = "";
		
		System.out.print("입력 : ");
		data = sc.next();
		
		
		data = data.toUpperCase();
		System.out.println(data);
		
		//아래의 복잡한 코드를 toUpperCase()를 이용하여 위의 두줄로 짧게 코딩할 수 있음		
//		for (int i = 0; i < data.length(); i++) {
//			char temp = data.charAt(i);
//
//			if(temp >= 97 && temp <= 122) {
//				result += (char)(temp - 32);
//			}else {
//				result += temp;
//			}
//		}
//		System.out.println(result);
		
	}
}

 

2) Owner

package day13;

import java.util.Scanner;

public class Owner {
	public static void main(String[] args) {
		//1동 1호 2호 3호
		//3칸 배열
		//printf()는 사용하지 않는다.
		//평균은 백원단위까지 출력
		
		Scanner sc = new Scanner(System.in);
		
		int[] arIncome = new int[3];
		int total = 0;
		double avg = 0.0;
		
		for (int i = 0; i < arIncome.length; i++) {
			System.out.println(i+1+"호 월세를 입력하세요(단위 : 만원)");
			arIncome[i] = sc.nextInt();
			total += arIncome[i];
		}
		
		avg = Double.parseDouble(String.format("%.2f", (double)total / arIncome.length));
		
		System.out.println("1동 총 월세 : " + total + "만원");
		System.out.println("1동 평균 월세 : " + avg + "만원");
		
	}
}

 

3) Louis

package day13;

import java.util.Scanner;

public class Louis {
	public static void main(String[] args) {
		//강남점, 잠실점, 압구정동
		//각 지점별 매출액 입력(만원 단위)
		//총 매출액, 평균 매출액(백원 단위) 출력
		//평균 매출액보다 매출이 많은 지점은
		//인센티브 매장으로 출력
		//인센티브 매장이 없으면 "없음" 출력
		
		int[] arIncome = new int[3];
		String[] arName = {"강남점", "잠실점", "압구정동"};
		Scanner sc = new Scanner(System.in);
		
		int total = 0;
		double avg = 0.0;
		int cnt = 0;
		
		for (int i = 0; i < arIncome.length; i++) {
			System.out.println(arName[i] + "매출액을 입력하세요(단위 : 만원)");
			arIncome[i] = sc.nextInt();
			total += arIncome[i];
		}
		
		avg = Double.parseDouble(
				String.format("%.2f", (total+0.0) / arIncome.length));
		
		System.out.println("루이비통 총 매출액 : " + total + "만원");
		System.out.println("루이비통 평균 매출액 : " + avg + "만원");
		
		System.out.println("★인센티브 매장★");
		for (int i = 0; i < arName.length; i++) {
			if(arIncome[i] > avg) {
				System.out.println(arName[i]);
				cnt++;
			}
		}
		
		System.out.println(cnt == 0 ? "없음" : cnt + " / " + arIncome.length);
		
	}
}

 

4) ArrTest

package day13;

public class ArrTest {
	public static void main(String[] args) {
		int[][] arrData = { 
				{ 1, 3, 5 }, 
				{ 2, 8, 4 } 
		};
		int length = arrData.length * arrData[0].length;
		arrData[0][2] = 10;
		System.out.println(arrData[0][2]);
		
		System.out.println(arrData.length);	//행의 갯수
		System.out.println(arrData[0].length);	//열의 갯수
		
		//0 1 2 3 4 5 / 3
		//0 0 0 1 1 1
		
		//0 1 2 3 4 5 % 3 
		//0 1 2 0 1 2
		
		for (int i = 0; i < length; i++) {
			System.out.println(arrData[i/3][i%3]);
		}
	}
}

'웹_프론트_백엔드 > 단과' 카테고리의 다른 글

[단과_JAVA] 2020.02.03  (0) 2020.02.04
[단과_Python] 2020.01.31  (0) 2020.02.03
[단과_Python] 2020.01.30  (0) 2020.01.30
[단과_JAVA] 2020.01.30  (0) 2020.01.30
[단과_Python] 2020.01.29  (0) 2020.01.29