프로그래머스 코딩 테스트가 생각보다 재밌다.
근데 어렵다.
근데 문제 해결했쥬 ㅎ
포기안하니까 다되죵 ㅎㅎ
이 문제 3일간 물고 늘어졌다...
베스트 방법은 아니긴한데 그래도 풀이 영상 안보고 풀수있는게 어디냐...
간단하게 풀이가 되는데 막상 코드 짤려면 어렵다...
function solution(denum1, num1, denum2, num2) {
denum = (denum1 * num2) + (denum2 * num1)
num = num1 * num2
//분자 분모 분리한 후 더한 식
let minnumber
if (denum < num ){
minnumber = denum
} else{
minnumber = num
}
//최대 공약수 전 최소 값 구하기
while(true){
if(denum % minnumber === 0){
if(num % minnumber === 0)
return[denum/minnumber, num/minnumber]
} minnumber = minnumber -1
}
// 최소 값 구한 것으로 최대공약수 구하기. 그리고 나누기
}
이것보다 더 간단한 방법이 많다 풀이 보니까
하지만 거기까지는 아직이다... 기댜려라...
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
const array1 = [1, 2, 3, 4];
// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
(previousValue, currentValue) => previousValue + currentValue,
initialValue
);
console.log(sumWithInitial);
// expected output: 10
보기에는 진짜 간단하다.
배열에 곱하기 2만하면된다.. 근데 식으로 쓰려니까 어려웡...
그러다가 우연찮게 reduce 함수를 보았다.
한줄로 간단히 쓸수 있는식...
위에 리듀스 설명했으니 참고하길 바란다.
여튼 저렇게 푸니까 진짜 간단함...
생각보다 쉬운 문제인데
몇가지 안되는것이있다.
자바스크립트는 if문에는 한 조건에 한꺼번에 두가지 조건을 못건다...
무슨말이냐면 0 < angle < 90
이게 안된다는 소리다.. 그래서 &&(and)로 두개 조건을 만들었다.
0 < angle && angle < 90 이렇게 해야된다.
그리고 가장 기초적인 "===" 같다 표시... 조심좀하자.
6시간동안 헤맸따. 너무 빡쳐서 답을 볼까....? 하다가
보면 지는거 같아서 오기로 풀어냈다...
사실 엄청 간단한 문제처럼 보이는데 막상 할려니까 막 여기저기 꼬였다...
나만그런가...?
여튼 오기로 풀어냄...
function solution(n, k) {
survice = Math.floor(n /10);
answer = (12000 * n) + (2000 * (k-survice))
return answer;
}
이건 다른 팀원분이 푼건데
왜 나는 이렇게 생각을 못할까 싶다...
function solution(n, k) {
let answer = n * 12000 + k * 2000
if(n >= 10) {
answer -= Math.floor(n / 10) * 2000
} return answer; }
피곤하다 소주나 먹어야겠다.
집념이 정말 대단하시네요 ㄷㄷ 안보고 풀으신거 진짜 대단
알고리즘도 좋긴하지만 너무 많은 시간을 뺏기면 주객전도됩니다 ㅠㅠ
어떤 마음이신지 알지만 시간을 제한해놓고 공부해보시다 안되면 다음 공부 진행하시는게 지금은 더 좋을 것 같습니다!
고생많으셨어요~!