0502-DailyAlgorithm
프로그래머스 2문제
1. 행렬의 곱셈
1 | function productMatrix(A, B) { |
잘했다고 생각한 점 rv, cv -> row colum 으로 의미 부여한 점
배운점
배열의 index로 차수를 맞춰줘야 한다. // 혹은 for문 안에서 차수 한 칸 아래서 배열을 만들어서 그 배열을 push해주는 방법
곱이 성립 안 되는 경우 Error처리를 안 했다.
// if (A[0].length !== B.length)
2. 2016
나의 풀이1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function getDayName(a,b){
const Months = {
1: 31,
2: 29,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
12: 31,
}
const Days = {
0:'SUN',
1:'MON',
2:'TUE',
3:'WED',
4:'THU',
5:'FRI',
6:'SAT',
}
const lastPoint = 4
let firstDays = 0;
for(let i =1; i<a; i++){
firstDays+=Months[i]
}
firstDays+=b
return Days[(firstDays%7+lastPoint)%7]
}
// 지금 보니 (firstDays%7+lastPoint)%7 왜 이렇게 해줬는지 ... 더하고 %7 한 번만 해주면 될 것을
다른 사람의 풀이
new Date같은 경우는 잘 쓰는 생성자이므로 인스턴스 메소드르르 잘 기억해뒀다가 활용하는 방향도 좋은 것 같다.1
2
3
4
5
6
7
8
9
10function getDayName(a,b){
var arr = ['SUN','MON','TUE','WED','THU','FRI','SAT'];
var date = new Date(`2016-${a}-${b}`);
var day = date.getDay() -> 숫자로 반환한다.
return arr[day];
}
function getDayName(a,b){
return new Date(2016, a-1, b).toString().slice(0,3).toUpperCase();
}
이제 level2 다 풀었으므로 프로그래머스 1 , codility 1 2문제씩으로 바꿔야겠다 !!!