코딩 테스트

[풀이] function solution(a, b) { const days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; const date = new Date(); date.setFullYear(2016, a - 1, b); const result = days[date.getDay()]; return result; } 1. 먼저 days 변수를 만들고 요일을 배열 안에 넣어준다. 2. new Date()를 이용해 2016년 a월 b일을 설정해준다. 3. 이때 자바스크립트에서 월은 (현재 월 -1)을 해줘야한다. (예시 : 2월은 자바스크립트에서 1임) 4. 마지막으로 배열에서 그 날의 요일을 받아온다. [코드 리뷰] function solution(a, ..
[풀이] function solution(num) { if (num % 2 === 0) return "Even"; else { return "Odd"; } } 2로 나누었을 때 나머지가 0 이면 짝수이고 그렇지 않으면 홀수이다. [코드리뷰] function solution(num) { if (num % 2 === 0) return "Even"; return "Odd"; } 밑에 else 문은 불필요한 블록이다. 위에 if 문에서 return 이 있기 때문에 아래 else 블록은 없어도 된다. 불필요한 블록을 추가하는 건 가독성면에서 좋지않다.
[풀이] function solution(s) { return (s.length === 4 || s.length === 6) && s == parseInt(s); } 문제 그대로 풀어주면 된다. 근데 이때 s === parseInt(s); 를 했을 때는 테스트를 통과하지 못한다. === 를 쓰는 것이 권장사항인데 아마 === 가 == 보다 더 엄격하기 때문에 통과를 못하는 것 같기도 하다. [코드 리뷰] const a = 1; const b = '1'; console.log(a == b); // true console.log(a === b); // false 위에서 보듯이 == (동등 연산자)보다 === (일치 연산자)가 더 엄격하게 "타입" 체크를 해준다. 코딩테스트라는 특수한 경우긴 하지만 일반적으로..
[풀이] function solution(absolutes, signs) { let result = 0; for (let i = 0; i < signs.length; i++) { absolutes[i] = signs[i] ? absolutes[i] : -absolutes[i]; result += absolutes[i]; } return result; } 처음에는 absolute[i] 값을 받지 않고 삼항연산자만 작성했다. 계속 값이 받아지지 않았던 이유는 값 받을 곳을 만들지 않았기 때문이었다. 1. 결과값을 받을 변수를 설정한다. 2. for문을 돌려서 absolutes[i] 가 signs[i] === true 일 때 양수를, false일 때 - 를 붙여 음수로 만들어준다. 3. 결과값에 absolut..
[풀이] function solution(arr) { const minNumber = Math.min(...arr); const resultArr = arr.filter((element) => element !== minNumber); return resultArr.length === 0 ? [-1] : resultArr; } 1. 배열 arr 을 전개구문을 통해 최소값을 찾아준다. 2. filter() 함수를 통해 최소값을 제거한 요소들을 새로운 배열로 만들어준다. 3. 만약 resultArr 배열의 길이가 0이라면 -1 을 리턴하고 아니면 resultArr 배열을 리턴해준다. 처음에는 단순히 arr 길이가 0일 때로 조건을 설정했었다. 안되는 이유는 제한 조건에 arr의 길이는 1이고 당연히 resu..
[풀이] function solution(phone_number) { const numArr = phone_number.split(""); const backNumber = numArr.splice(phone_number.length-4, 4).join(""); const frontNumber = numArr.join("").replace(/[0-9]/g, "*"); return frontNumber + backNumber; } 1. 먼저 번호를 배열로 바꿔준다. 2. 뒤 4자리를 splice()를 통해 값을 받아 놓는다. - 이때 splice(phone_number.length-4, 4) 인 이유 만약 phone_number가 "02777888" 이라면 numArr = ['0', '2', '7', '7..
[처음 푼 풀이] function solution(num) { let result = 0; for (let i = 1; i
[풀이] function solution(d, budget) { let result = 0; let sum = 0; d = d.sort((a, b) => a - b); for (let i = 0; i budget) return result; result++; } return result; } if - else를 사용해 break 로 종료하는 것 보다 sum에 d의 값을 누적하다가 sum > budget 일 때 바로 return result 하는 것이 좋은 방법이 될 것 같다. sort 메서드는 기존 배열을 바꿔주는..
[처음 푼 풀이] function solution(arr, divisor) { let newArr = []; for (let i = 0; i < arr.length; i++) { if (arr[i] % divisor === 0) { newArr.push(arr[i]); newArr.sort(); } else { newArr.push(-1); } } return newArr; } 1. 새로운 배열을 받아줄 newArr 변수를 설정함. 2. for문을 돌려서 arr[i]가 divisor로 나눠진다면, newArr에 push를 해 값을 배열에 넣어줌. 3. 그리고 그 값들을 sort를 이용해 오름차순으로 정렬해줌. 4. 만약 divisor로 나누어 떨어지지 않으면 newArr에 -1을 push함. 그런데, 여..
[처음 푼 풀이] if(a === b){return a} else{ return a + b + ...? } 처음에 풀이를 if - else 를 이용해서 풀어보려고 했음 하지만 위 풀이와 같이 a 와 b 사이에 있는 값의 합을 구할 수가 없음 결과값은 a + (a+1) + (a+2) + ... + b 이고 계속 1씩 증가하기 때문에 for문을 돌려야겠다고 생각함! [예시] const arr = [1, 2, 3, 4]; let sum = 0; for(let i = 0; i < arr.length; i++){ sum += arr[i]; } return sum; 예시처럼 배열안의 값을 더할 때는 sum에 arr[0] , arr[1] , ... 반복하면서 값을 누적시켜 더해주는 것 하지만, 문제에서는 배열을 만들..
hayeonn
'코딩 테스트' 카테고리의 글 목록 (3 Page)