본문 바로가기

알고리즘43

Programmers 프로그래머스 코딩테스트 연습 - 예산 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 예산 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중, 예산 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서.. 2020. 8. 6.
Programmers 프로그래머스 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중, 문자열 내 마음대로 정렬하기 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strin.. 2020. 8. 5.
Programmers 프로그래머스 코딩테스트 연습 - 가운데 글자 가져오기 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 가운데 글자 가져오기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중, 가운데 글자 가져오기 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s return "abcde" "c" "qwer" "we" 작성한 답 solution.js function solution(s) { return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? .. 2020. 8. 4.
Programmers 프로그래머스 코딩테스트 연습 - 체육복 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 체육복 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중, 체육복 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을.. 2020. 8. 3.
Programmers 프로그래머스 코딩테스트 연습 - 2016년 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 2016년 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중, 2016년 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 TUE를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일.. 2020. 8. 2.
Programmers 프로그래머스 코딩테스트 연습 - 쇠막대기 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 쇠막대기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, 쇠막대기 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레이저의 배치는 다음 조건을 만족합니다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있습니다. 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓습니다. 각 쇠막대기를 자르는 레이저는 적어도 하나 존재합니다. 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 .. 2020. 8. 1.
Programmers 프로그래머스 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중, 나누어 떨어지는 숫자 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 ar.. 2020. 7. 31.