본문 바로가기

프로그래머스 (Swift)/lv 1

[lv1]2016년

문제

 

내 정답 코드

func solution(_ a:Int, _ b:Int) -> String {
    let week:[String] = ["THU","FRI","SAT","SUN","MON","TUE","WED"]
    let monthDay = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    
    var totalDay = b
    
    (0..<a-1).map {
        totalDay += monthDay[$0]
    }
    
    return week[totalDay % 7]
}

 

#

1. 원하는 날짜까지의 모든 날을 더하고, 7의 나머지 값을 통해 요일을 알 수 있다.

2. 각 월의 날을 배열로 선언한다.

3. 원하는 날의 전 달까지의 날을 모두 더하고 b를 더하여,

4. 모든 날을 더한 totalDay를 계산한다.

5. 7로 나누고 나머지 값의 인덱스로 요일을 가져와 반환한다.

6. 나머지 값이 1일 때, 1월 1일, 즉 2016년 1월 1일 금요일이기 때문에, 0일 때는 목요일로 기준을 잡았다.


배운 기술

'프로그래머스 (Swift) > lv 1' 카테고리의 다른 글

[lv1] 문자열 다루기 기본  (0) 2024.10.23
[lv1] 수박수박수  (0) 2024.10.23
[lv1] [1차] 다트 게임  (3) 2024.10.22
[lv1] 이상한 문자 만들기  (0) 2024.10.21
[lv1] K번째 수  (0) 2024.10.20