해당문제는 가볍게 풀었다. 그러나 리펙토링으로 더 간단하게 만들 수 있을까?
function solution(x, n) {
var answer = []
let count = x;
for(let i=0;i<n;i++) {
answer.push(count)
count += x
}
return answer;
}
x, x+x, x+x+x 와 같은 방법을 n번 만큼 배열에 넣어주고 싶은 구분이다.
function solution(x, n) {
var answer = [x]
let count = n-2
answer.push(answer.at()+x) // n-2 만큼 push 를 더 실행할 수 있을까?
return answer
}
재귀함수에 대한 아이디어를 가지고 도전해보았다.
동작은 하는 것 같다.
무한하게 함수가 서로를 호출하며 호출 스텍이 터진 오류가 발생되었다. 여러 시도를 해보았지만, 방법이 없는 것인지, 방법이 있는데 해결하지 못하는 것인지, 현재로써는 찾지 못하겠다. PASS
조건부 삼항 연산자를 통해서 시도해본 내용이다. 위의 코드에 비해서 복잡하지만 9줄에서 현재 7줄로밖에 줄어들지 않았다. 괜한 시도인가? 아직 내가 자바스크립트를 모르는 문제일까? 질문해보면서, 다음문제로 오늘은 넘어간다.
function solution(x, n) {
var answer = [x]
let count = n-2
answer.push(answer.at()+x)
count = count >0? count-1 : 0
return count !== 0 ? count : answer
}
프로그래머스, 부족한 금액 계산하기
이 문제도 이해를 못해서 어렵게 풀었던 문제였던 것 같다.
function solution(price, money, count) {
let arr = 0;
for(let i=1;i<count+1;i++) {
arr+=price*i
}
return arr-money > 0 ? arr-money : 0
}
단순하게 풀어보고 싶었지만 이루지 못했다. 이쁘게 풀기 위해서는 "가우스 공식/등차수열"이라는 것이 존재하는 것 같다. 그러나 나는 이루지 못했다.
function solution(a, b) {
let week = ["SUN","MON","TUE","WED","THU","FRI","SAT"]
let dayOfWeek = week[new Date(`20016-${a}-${b}`).getDay()];
return dayOfWeek;
}
이런 문제를 풀어야 하나라는 의문이 생겨서 구글링으로 2016년의 날짜를 불러왔다. 그래서 문제를 풀었다. 이렇게 푸는 것이 맞는지는 모르겠지만 말이다. 그래서 풀이를 할 때 이해하지 않고 그냥 넘어갔다. 해당 부분의 이해는 다른 포스트에서 진행하였다.