아요 개발 일기
[프로그래머스] Level 1. 2016 년 본문
반응형
문제
풀이
저는 week와 month를 Array로 선언해놓고 풀었습니다!
a의 값만큼 for 문을 돌려주고
만약, a = 5라면 month[0...5]까지 0, 31, 29, 31, 30, 31 값을 result에 값에 더해줍니다
그 후에 result 값에 b 값도 더해주고, 일주일은 7일이니 result % 7 의 값을 week에서 찾아서 Return 합니다.
func solution(_ a:Int, _ b:Int) -> String {
let w = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"]
let monthDay = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
let totalDay = monthDay[0..<a-1].reduce(0, +) + b
return w[totalDay % 7]
}
저랑 비슷한 방법인데 이 풀이는 제 For - in 문을 한 줄로 줄였네요?
Reduce 고차 함수를 사용해서 monthDay를 해당 값까지 0번째부터 더해주고 b를 더한 값을 이용합니다.
제 for-in 문과 동일하죠?
정확성 테스트
이번 정확성 테스트도 전과 비슷하네요!
고차함수를 사용해서 다른 풀이가 더 무겁게 나왔어요 ㅎㅎ
짧은 코드라서 for-in 문을 사용하는게 더 나은 것 같아요!!
잘 못된 부분이나 더 좋은 풀이가 있으면 댓글로 알려주세요 ㅎㅎㅎㅎ!
반응형
'Algorithms > 문제 풀이' 카테고리의 다른 글
[프로그래머스] Level 1. 두개 뽑아서 더하기 (0) | 2023.01.17 |
---|---|
[프로그래머스] Level 1. 최소직사각형 (0) | 2023.01.17 |
[프로그래머스] Level 1. 부족한 금액 계산하기 (0) | 2023.01.17 |
[프로그래머스] Level 1. 가운데 글자 가져오기 (0) | 2023.01.17 |
[프로그래머스] Level.1 문자열 내 마음대로 정렬하기 (0) | 2023.01.17 |