본문 바로가기
반응형
[프로그래머스] 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.
[프로그래머스] 체육복 | JavaScript 탐욕 알고리즘(greedy algorithm) 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. - 위키백과 탐욕 알고리즘의 정의를 보고 네비게이션이 생각이 났다. 아빠가 운전하는 차를 타고 가면서 카카오맵 네비를 쓴 적이 있는데 몇분 간격으로 실시간 교통정보와 경로를 불러오더라. 그걸 토대로 최적의 길과 다른 길로 가게 되면 얼마가 더 걸리는지도 알려준다. 체육복을 빌려줘 🏃🏻‍♂️ 체육시간이 다가오는데, 일부 학생들이 체육복을 도난을 당한 경우다. 다행히 여벌의 체육복을 가져온 학생들이 빌려주기로 한다. 학생들의 번호는 체격 순으로 매겨져 있으며 바로.. 2021. 4. 7.
[프로그래머스] 신규아이디 추천 | JavaScript 신규아이디 추천 알고리즘 문제를 보고 바로 정규표현식이 생각이 났다. 드림코딩 정규표현식👏 처음엔 '이게 뭐지?' 싶은데 하다보면 쉽고 재미있다. 정규 표현식 연습 사이트👍 new_id가 주어지면 규칙에 맞는지 검사하고 규칙에 맞지 않으면 새로운 아이디를 추천해주는 알고리즘이다. id의 규칙은 다음과 같다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(\_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. 새로운 아이디를 추천해줄 경우 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.).. 2021. 4. 4.
반응형