728x90
[Swift] 프로그래머스 2016년(lv. 1)
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12901
2. 접근
여러 해를 구하는 것이 아니고 2016년 안의 일자를 구하는 것이기 때문에 상수만 잘 설정해주면 된다.
1월이면 totalDay(일자를 내부 변수로 받은 것)에 4를 더해서 7로 나눈 나머지를 구한다.
weekArray의 인덱스에 따라 요일이 출력되는데, 1일이 목요일이었기 때문에 이렇게 설정하였다.
나머지 달의 경우, '요일'을 구하는 것이기에 기준점을 1월 1일로 하여 구해줘도 상관이 없다.
그래서 totalDay에 각 월 별 일수를 더해주었다. 반복문을 모두 통과한다음, totalDay + 4를 하고 7로 나눈 나머지를 weekArray에서 요일을 구하는 인덱스로 활용하고 최종적으로 String 값을 리턴한다.
3. 코드
func solution(_ a:Int, _ b:Int) -> String {
let weekArray = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]
let daysArray = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
var totalDay = b
if a == 1 {
return weekArray[(totalDay + 4) % 7]
} else {
for i in 0 ... a - 2 {
totalDay += daysArray[i]
}
}
return weekArray[(totalDay + 4) % 7]
}
728x90
'Problem Solving' 카테고리의 다른 글
[Swift] 프로그래머스 콜라 문제(lv. 1) (0) | 2023.01.28 |
---|---|
[Swift] 프로그래머스 소수 찾기(lv. 1) (1) | 2023.01.27 |
[Swift] 프로그래머스 두 개 뽑아서 더하기(lv. 1) (0) | 2023.01.24 |
[Swift] 프로그래머스 숫자 문자열과 영단어(lv. 1) (0) | 2023.01.23 |
[Swift] 프로그래머스 K번째 수(lv. 1) (2) | 2023.01.20 |
댓글