본문 바로가기
반응형
[프로그래머스] 2016년 요일 구하기 | JavaScript 2016년 요일 구하기 두 수 a, b를 받아 2016년의 a월, b일이 무슨 요일인지 구하는 알고리즘이다. 예를 들어 a = 5, b = 24라면 2016년의 5월 24일은 화요일이므로 문자열 "TUE"를 반환해야한다. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 입출력 예 a b result 5 24 "TUE" 코드 function solution(a, b) { const day = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; const date = new Date(`2016, ${a}, ${b}`); return day[date.getDay()]; } 템.. 2021. 4. 14.
[프로그래머스] 나누어 떨어지는 숫자 배열 | JavaScript 나누어 떨어지는 숫자 배열 정렬되지 않은 배열인 arr의 요소 중 divisor로 나누어 떨어지는 값을 배열에 담아 반환한다. 그 후 오름차순으로 정렬하면 되는 문제이다. 만약 떨어지는 값이 없다면 배열에 -1을 넣어 반환한다. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 arr divisor return [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] 1 [1, 2, 3, 36] [3, 2, 6] 10 [-1] 코드 function solution(arr, divisor) { const answer = arr.filter((nu.. 2021. 4. 14.
[프로그래머스] 가운데 글자 가져오기 | JavaScript 가운데 글자 가져오기 주어진 문자열의 가운데 글자를 반환하는 문제. 짝수일 경우 가운데 두 글자를 반환해야 한다. 제한사항 s는 길이가 1이상, 100이하인 스트링입니다. 입출력 예 s return "abcde" "c" "qwer" "we" 코드 function solution(s) { const m = Math.round(s.length / 2); let answer = ''; if (s.length % 2 === 0) { answer = s.slice(m - 1, m + 1); } else { answer = s.slice(m - 1, m); } return answer; } 처음엔 `substr()` 메서드를 이용해 문자를 가져오려 했지만 MDN 사이트에서 보니 권장하는 메서드가 아니고 사용처가 많.. 2021. 4. 14.
[프로그래머스] 모의고사 | JavaScript 모의고사 1등은 누구? 수포자 삼인방이 모의고사를 본다. 이 삼인방은 수학 문제를 일정한 패턴을 가지고 전부 찍으려 한다. 그 패턴은 다음과 같다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지 정답이 순서대로 들어있는 배열 answers가 주어지고 가장 많은 문제를 맞힌 사람을 구하는 완전탐색 알고리즘 문제이다. 제한 조건은 다음과 같다. 시험은 최대 10,000 문제로 구성.. 2021. 4. 11.
[프로그래머스] K번째 수 | JavaScript K번째수 배열을 얼마나 잘 다루는지 보는 테스트이다. 다시 말해 배열의 인덱스, 순서 처리와 정렬 등을 할 수 있는지 보는 테스트인 것 같다. 배열 array의 i번째 숫자부터 j번째 숫자까지 자른 후 정렬했을 때, k번째에 있는 수를 구한다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]이다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]이다. 2에서 나온 배열의 3번째 숫자는 5이다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 .. 2021. 4. 11.
[React.js] 유튜브 API로 인기 동영상 리스트 뽑기 리액트로 유튜브 클론 프로젝트를 진행 중이다. 유튜브 API는 문서화가 엄청 잘 되어 있어서(테스트도 가능하다) 쉽게 할 수 있을 줄 알았는데 생각보다 안보이는 벽이 많았다. API 사용이 처음은 아니지만 Web API인 Fetch API는 처음 사용해봐서 정말 많이 헤맸다. 결국 강의를 통해 해결했고 이를 정리해봤다. 이번에도 개인 키가 필요하다. API 사용에는 항상 개인 키를 발급해야 되나 보다. 몇몇 보안이 강한 OPEN API는 다이렉트로 받아올 경우 서버 자체에서 거부하기 때문에 나도 겪어본 CORS 에러가 발생하는데 이 경우엔 우회하거나 자체적으로 프론트용 서버를 만들어서 해당 서버에서 받아와야 한다고 한다. 다행히 유튜브 API는 그럴 필요가 없다. 유튜브 API에 들어가서 하라는대로 단계.. 2021. 4. 8.
[프로그래머스] 체육복 | JavaScript 탐욕 알고리즘(greedy algorithm) 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. - 위키백과 탐욕 알고리즘의 정의를 보고 네비게이션이 생각이 났다. 아빠가 운전하는 차를 타고 가면서 카카오맵 네비를 쓴 적이 있는데 몇분 간격으로 실시간 교통정보와 경로를 불러오더라. 그걸 토대로 최적의 길과 다른 길로 가게 되면 얼마가 더 걸리는지도 알려준다. 체육복을 빌려줘 🏃🏻‍♂️ 체육시간이 다가오는데, 일부 학생들이 체육복을 도난을 당한 경우다. 다행히 여벌의 체육복을 가져온 학생들이 빌려주기로 한다. 학생들의 번호는 체격 순으로 매겨져 있으며 바로.. 2021. 4. 7.
반응형