티스토리 뷰

728x90

윤년이란 2월이 29일 까지 있는것

 

 

 

문제 푸는 방법

1.a의 이전달까지의 합 구하기 

   1월 3월 5월 7월 8월 10월 12월 == 31일

   2 월 = 29일

   4월 6월 9월 11월 == 30일

    

2. 이전달 까지의 합에서 b를 더하면 현재 까지의 날자를 알 수 있음

3.1월 1일이 금요일이라는 것을 이용하여 반복문을 통해 현재 요일을 구한다

 

쉬운풀이

class Solution {
    fun solution(a: Int, b: Int): String {
        var answer = ""
        var day = 0
        var count = 4
        for (i in 1 until a) {
            if (i < 8) {
                day += if (i == 2) {
                    29
                } else if (i % 2 == 0) {
                    30
                } else {
                    31
                }

            } else {
                day += if (i % 2 == 0) {
                    31
                } else {
                    30
                }
            }

        }
        for (j in 1..day + b) {
            count++
            if (count == 8) {
                count = 1
            }
        }
        when (count) {
            1 -> answer = "MON"
            2 -> answer = "TUE"
            3 -> answer = "WED"
            4 -> answer = "THU"
            5 -> answer = "FRI"
            6 -> answer = "SAT"
            7 -> answer = "SUN"
        }
        return answer
    }
}

숏코딩

class Solution {
    fun solution(a: Int, b: Int): String {
      var monthToDay = arrayOf( 0,0,31,60,91,121,152,182,213,244,274,305,335 );
      var charDays = arrayOf( "FRI","SAT","SUN","MON","TUE","WED","THU" );
      var days = (b-1 + monthToDay.get(a)) % 7;

      return charDays.get(days);
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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
글 보관함
250x250