프로그래머스 Lv1. 2016년

용상윤·2021년 2월 19일
0

📌 문제

https://programmers.co.kr/learn/courses/30/lessons/12901


📌 접근

  • 2016년은 총 366일임을 이용
  • ex) 1월 1일이 금요일이므로 364일(7의 배수) 뒤인 365일째 되는 날인 12월 30일은 금요일 일 것이다.

📌 코드

js

function solution(a, b) {
  const daysOfMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  const dayOfWeek = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"];

  const temp = daysOfMonth.slice(0, a - 1);

  let days = 0;
  for (var i = 0; i < temp.length; i++) {
    days += temp[i];
  }
  var answer = (days + b - 1) % 7;

  return dayOfWeek[answer];
}


python

def solution(a, b):
    days_month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    day_week = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"]
    
    days = sum(days_month[0:a-1])
    answer = (days + b - 1) % 7
    return day_week[answer]


✍ 메모

reduce()

reduce() 를 이용해서 간단하게 배열의 합을 구할 수 있다.
하지만 배열이 비어있다면 error!

a = [1,2,3,4]
b = []
c = ["a","b","c","d"]

a.reduce((a,b)=>a+b)
// 10
b.reduce((a,b)=>a+b)
//VM421:1 Uncaught TypeError: Reduce of empty array with no initial value
c.reduce((a,b)=>a+b)
//"abcd"
profile
달리는 중!

0개의 댓글