내 풀이
func solution(_ a:Int, _ b:Int) -> String {
var day: Int = b
let week: [String] = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]
let month: [Int] = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for i in 0..<a-1 {
day += month[i]
}
return week[(day+4)%7]
}
- week
배열에 모든 요일 문자열로 저장
- month
배열에 각 월의 일 수 저장
- a월 이전까지의 일 수를 더하기
→ b일을 더하여 해당 날짜가 연도의 시작일부터 몇 번째 날인지 계산
- (day + 4) % 7
인덱스에 해당하는 요일반환
또 다른 풀이
func solution(_ a: Int, _ b: Int) -> String {
let weekday = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]
let daysInMonths = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
return weekday[(daysInMonths[0..<a - 1].reduce(0, +) + b + 4) % 7]
}
' 𝗔𝗣𝗣𝗟𝗘 > ALGORITHM' 카테고리의 다른 글
[내일배움캠프] 데일리 루틴(iOS_3회차) - 덧칠하기 (2) | 2024.04.09 |
---|---|
[내일배움캠프] 데일리 루틴(iOS_3회차) - 카드 뭉치 (2) | 2024.03.20 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 명예의 전당 (1) (0) | 2024.03.18 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 콜라 문제 (0) | 2024.03.15 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 푸드 파이트 대회 (0) | 2024.03.14 |