프로그래머스

    [프로그래머스] 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의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한 사항 array의 길이는 1 이상 100 이하입니다. array의 각 원소는 1 ..

    [프로그래머스] 문자열 내림차순으로 정렬하기

    문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해 주세요. s는 영문 대문자로만 구성되어 이씅며, 대문자는 소문자 보다 작은 것으로 간주합니다. 제한 사항 str의 길이는 1이상인 문자열 입니다. 입출력 예 문제 풀이 function solution(s) { // 문자열을 배열로 쪼개준다. // sort 메서드를 이용해 순차적으로 문자나열 // reverse 메소드로 문자를 반전시켜주고 // join 메소드로 문자열로 바꿔주어서 반환해준다. return s.split('').sort().reverse().join(''); }

    [프로그래머스] x만큼 간격이 있는 n개의 숫자

    문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성하세요 제한 조건 x는 -10000000 이상, 10000000 이하인 정수 n은 1000이하인 자연수 입출력 예 x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4,-8] 멘토님 풀이법 function solution(x, n) { const answer = []; // 반복문 실행 // i인덱스에서 계속해서 더해서 return // i가 n보다 작거나 같을 떄까지 반복문 실행하면 n을 포함한 숫자 for (let i = 1; i { // undefine..

    [프로그래머스] 자릿수 더하기

    문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한 사항 N의 범위: 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 입출력 예 설명 입출력 예 #1 문제는 예시와 같습니다. 입출력 예 #2 9 + 8 + 7 = 24 이므로 24를 return하면 됩니다. 1.문제 이해하기 입력으로 들어올 숫자의 각 자리 수를 합한 값을 변환해주면 된다. n의 값이 123 이면 1 + 2 + 3 = 6을 retun 하면 된다. 2.해결 방법 입력으로 들어온 숫자를 문자로 변환해 다음 배열로 만들어 reduce를 이용해 각 자리 숫자를 더..

    [프로그래머스] 약수의 합

    문제 정수 n을 입력받아 n의 약수 모두 더한 값을 리턴하는 함수, solution을 완성해주세요 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 입출력 예 #1 12의 약수는 1, 2 ,3 ,4 ,6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1,5입니다. 이를 모두 더하면 6입니다. function solution(num) { const arr = []; // 먼저 i값의 반복문을 돌려준다. for (let i = 0; i < num; i++) { // input을 나눌때 나머지가 0인 정수를 모조리 찾아주고 // 모든 숫자를 배열에 넣어 누적 합사후 합계를 반환한다. // 하지만 0 부터 input 까지 숫자를 1씩 더해가며 계산해야하므로 시간 복잡도가 ..

    [알고리즘 테스트] 가운데 글자 가져오기

    문제 설명 단어 s 가운데 글자를 반환하는 함수 solution을 만들어 보세요 단어의 길이가 짝수라면 가운데 두글자만 반환하면 됩니다. 제한 사항 arr의 길이 1 이상, 100 이하인 스트링입니다. 입출력 예 s return "abcde" "c" "qwer" "we" 풀이 문자열의 길이가 짝수인지 홀수인지 판단한다. 짝수이면 가운데 두 글자를 반환하고, 홀수이면 가운데 한 글자만 반환한다. function solution(s) { let answer = ''; if (s.length % 2 == 0) {//짝수일 경우 answer = s[s.length / 2 - 1] + s[s.length / 2] } else { answer = s[Math.floor(s.length/2)]; // 홀수의 경우, ..

    [알고리즘 테스트] 평균 구하기

    문제 설명 정수를 담고 있는 배열 arr의 평군 값을 return하는 함수, solution을 완성해보세요. 제한 사항 arr의 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수다. 입출력예 arr return [1,2,3,4] 2,5 [5,5] 5 문제 풀이 평균을 구하는 간단하고 쉬운 문제다. 배열에 담긴 요소들의 합을 구한다. 요소들의 합을 배열의 길이 (=요소 갯수)로 나눈다. function solution(arr) { let answer = 0; let sum = 0; for (int i = 0; i < arr.length; i++) { sum += arr[i] // 배열의 요소들을 하나씩 더함 } return answer = sum / a..

    [알고리즘 테스트] 체육복

    문제설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행이 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 resorve가 매개변수로 주어질때, 체육수업을 들을 수 있는 학생의 최대값을 return 하도록 solution함수를 작성해주세요. 제한 사항 전체 학생 수는 2명 이상 30명 이하입니다. 체육복을 도난당한 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다. 여벌의 체육복을 가져온 학생의 수는 1명 이..

    [프로그래머스 알고리즘 테스트] 핸드폰 번호 가리기

    1. 문제 프로그래머스 모바일은 개인정보 보호를 위한 고지서를 보낼 때 고객들의 전화번호 일부를 가린다. 전화번호 문자열 phone_number이 주어질때, 전화번호 뒷 4자리를 제외한 나머지 숫자를 전부 *로 가린 문자열을 리턴하는 함수, solution을 완성하세요. 2.제한 조건 s는 길이 4이상, 20 이하면 문자열이다. 전화번호 뒷 4자리를 제외한 나머지 숫자를 전부 *로 가린 문자열을 리턴해준다. 3.문제 풀이 function solution(num) { const len = num.length - 4; return "*".repeat(len) + num.substring(len) } slice문법을 사용한 풀이법 function solution(pNum) { return pNum.slice(..