문제 링크 -> https://programmers.co.kr/learn/courses/30/lessons/12901
코딩테스트 연습 - 2016년
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까
programmers.co.kr
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN, MON, TUE, WED, THU, FRI, SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.
제한 조건
- 2016년은 윤년입니다.
- 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)
------------------------------------------------------------풀이------------------------------------------------------------------
1. 1부터 a까지 반복문을 돌면서 각 월에 맞는 일수를 date에 더해줍니다.
2. 2016년은 윤년이기 때문에 2월이라면 29를 더하고, a월이라면 b를 더합니다.
class Solution {
fun solution(a: Int, b: Int): String {
var day = arrayOf("THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED")
var date = 0
for(i in 1..a){
if(i<=7){
if(i==a) date += b
else if( i==2 && a>2) date += 29
else if( i%2==0 ) date+=30
else if( i%2 !=0 ) date+=31
}
else{
if( i== a) date += b
else if(i%2 == 0) date += 31
else if(i%2 != 0) date += 30
}
}
return day[date%7]
}
}
------------------------------------------------------------결과------------------------------------------------------------------
풀고나서 다른분 풀이를 봤는데 Array에 그냥 월별 일수를 넣어두셨더라구요... 2016년으로 제한되어있고 윤년이라고 했으니 그방법이 더 효율이 좋으려나 싶네요
- 문제에 대한 질문 댓글 환영!
- 중간에 잘못된 부분이 있다면 댓글로 남겨주세요. 수정하겠습니다.
'Kotlin(프로그래머스) > Level 1' 카테고리의 다른 글
[프로그래머스/Kotlin] 나머지가 1이 되는 수 찾기 (0) | 2022.03.19 |
---|---|
[프로그래머스/Kotlin] 최소직사각형 (0) | 2022.03.19 |
[프로그래머스/Kotlin] 두 개 뽑아서 더하기 (0) | 2022.03.19 |
[프로그래머스/Kotlin] 3진법 뒤집기 (0) | 2022.03.18 |
[프로그래머스/Kotlin] 약수의 개수와 덧셈 (0) | 2022.03.18 |
댓글