[Swift 알고리즘] 프로그래머스 LV1 - 04. 2016년
프로그래머스 코딩테스트 연습문제 LV1 - 04. 2016년
2016년
- 출처: 프로그래머스 코딩 테스트 연습
- 난이도: 레벨1
- 사용언어: Swift
문제 설명
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일같은 날짜는 주어지지 않습니다)
입출력 예
a | b | result |
---|---|---|
5 | 24 | “TUE” |
주어진 코드
func solution(_ a:Int, _ b:Int) -> String {
return ''
}
제출한 코드
enum Day: Int {
case FRI = 0
case SAT
case SUN
case MON
case TUE
case WED
case THU
func getString() -> String {
switch self {
case .FRI:
return "FRI"
case .SAT:
return "SAT"
case .SUN:
return "SUN"
case .MON:
return "MON"
case .WED:
return "WED"
case .TUE:
return "TUE"
case .THU:
return "THU"
}
}
}
func calcDayFromMonth(month: Int) -> Int {
var day: Int = 0
for i in 1..<month {
switch i {
case 1, 3, 5, 7, 8, 10, 12:
day += 31
break
case 2:
day += 29
break
case 4, 6, 9, 11:
day += 30
break
default:
break
}
}
return day
}
func solution(_ a:Int, _ b:Int) -> String {
var day = calcDayFromMonth(month: a) + b - 1
day = day % 7
let enumDay = Day.init(rawValue: day)
return enumDay!.getString()
}
Leave a comment