2016년 Lv. 1

박영준·2022년 11월 21일
0

코딩테스트

목록 보기
13/300
class Solution {
    public String solution(int a, int b) {
        String answer = "";
        return answer;
    }
}

해결법

방법 1

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        
        //1월 1일이 금요일 이므로, 금요일부터 시작하여 요일 이름을 저장
        //요일이 들어갈 배열, 매달 일수가 들어갈 배열을 만들어준다.
        String[] day = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
        int[] month = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        
        //a - 1까지 모든 월의 일수를 더한다(배열은 0부터 시작이므로)
        int date = 0;
        for(int i = 0; i < a - 1; i++) {
            date += month[i];
        }    
        
        //b - 1을 더한다(배열은 0부터 시작이므로)
        //현재는 b일 이므로, 이렇게 더하면 1월 1일부터 총 며칠이 더해졌는지 알 수 있음
        date += b - 1;
        
        //모든 날짜를 더한 값을 7로 나눈 나머지 = 나머지 day번째
        return day[date % 7];
    }
}
  • date += b - 1;

    • -1을 안하면 1월 1일도 하루 지난걸로 계산해서 금요일이 아니라 토요일로 뜸
  • 배열

    //크기 할당 & 초기화 없이 배열 참조변수만 선언
    int[] arr;
    int arr[];
    
    //선언과 동시에 배열 크기 할당
    int[] arr = new int[5];
    String[] arr = new String[5]; 
    
    //기존 배열의 참조 변수에 초기화 할당하기
    int[] arr;
    arr = new int[5]; //5의 크기를 가지고 초기값 0으로 채워진 배열 생성
    
    //선언과 동시에 배열의 크기 지정 및 값 초기화
    int[] arr = {1,2,3,4,5}; 
    int[] arr = new int[]  {1,3,5,2,4};    
    int[] odds = {1,3,5,7,9};  
    String[] weeks = {"월","화","수","목","금","토","일"};
    
    //2차원 배열 선언
    int[][] arr = new int[4][3];   //3의 크기의 배열을 4개 가질 수 있는 2차원 배열 할당  
    int[][] arr9 = { {2, 5, 3}, {4, 4, 1}, {1, 7, 3}, {3, 4, 5}};
    //arr[0] >> {2, 5, 3};
    //arr[1] >> {4, 4, 1};
    //arr[2] >> {1, 7, 3};
    //arr[3] >> {3, 4, 5};

2016년 Lv. 1

profile
개발자로 거듭나기!

0개의 댓글