1. 2차원 배열 사용하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package myTest1; public class Int2DArray { public static void main(String[] args) { int[][] x = new int[2][4]; // 2차원배열 선언 x[0][1] = 37; x[0][3] = 54; x[1][2] = 65; for(int i=0; i<2; i++){ for(int j=0; j<4; j++){ System.out.println("x[" + i + "][" + j + "] = " + x[i][j]); } } } } | cs |
결과
2. 2차원 배열을 사용하여 한 해의 경과일수 계산하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | package myTest1; import java.util.Scanner; public class DayOfYear { // mdays[0][0] = 31, mdays[0][1] = 28, mdays[0][2] = 30 // mdays[1][0] = 31, mdays[1][1] = 29, mdays[1][2] = 30 static int[][] mdays = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} // 평년 , {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} // 윤년 }; // 해당 year는 윤년인가? (윤년 1 평년 0 ) static int isLeap(int year){ // 2018 % 4 false 2018 % 400 false 0 return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? 1: 0; } static int dayOfYear(int y, int m, int d){ // 2018, 3, 15 // days = 15; // int i=1 ; i<3; i++ 1,2 int days = d; for(int i=1; i<m; i++){ // mdays[isLeap(2018)][0], mdays[0][0] // mdays[isLeap(2018)][1], mdays[0][1] // 15+31+28 = 74 days += mdays[isLeap(y)][i-1]; } return days; } static int usingWhileDayOfYear(int y, int m, int d){ int days = 0; m -= 2; do{ days += mdays[isLeap(y)][m]; m--; }while(m>-1); days += d; return days; } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); int retry; System.out.println("그 해 경과 일수를 구합니다."); do{ System.out.print("년 : "); int year = stdIn.nextInt(); // 년 System.out.print("월 : "); int month = stdIn.nextInt(); // 년 System.out.print("일 : "); int day = stdIn.nextInt(); // 년 System.out.printf("그 해 %d일째입니다.\n", dayOfYear(year,month, day)); System.out.printf("그 해 %d일째입니다.\n", usingWhileDayOfYear(year,month, day)); System.out.print("한번 더 할까요? (1.예 / 0. 아니오) : "); retry = stdIn.nextInt(); }while(retry == 1); } } | cs |
결과
for문과 do while문을 사용하여 메소드를 다르게 구현하였다.
소스 코드 첨부
'전체 > 알고리즘' 카테고리의 다른 글
이진검색 알고리즘 (구현 메소드 사용, Arrays.binarySearch 라이브러리 사용) (0) | 2018.10.03 |
---|---|
선형 검색 while, for, 보초법 사용하여 구현하기 (검색 알고리즘) (0) | 2018.09.30 |
배열사용, 제곱근 이하 소수 판단, 소수 찾기 알고리즘 (0) | 2018.09.30 |
기수 변환, 정수를 입력받아 2진수 ~36진수 변환 (0) | 2018.09.30 |
배열 요소 랜덤 생성, 배열 a,b 복사하기, 같은지 확인하기, 역순으로 복사하기 (0) | 2018.09.29 |