etc./Algorithm

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

    문제 설명 문자열 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씩 더해가며 계산해야하므로 시간 복잡도가 ..

    [프로그래머스 코딩테스트] 서울에서 김서방 찾기

    문제설명 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다" 는 String을 반환하는 함수 solution을 완성해주세요, seoul에 "Kim"은 오직 한번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제한사항 seoul은 길이 1이상, 1000 이하인 배열입니다. seoul의 원소는 길이 1 이상, 20 이하인 문자열 입니다. "Kim"은 반드시 seoul 안에 포함되어 있습니다 입출력 예 seoul return ["Jane", "Kim"] "김서방은 1에 있다" for 문을 이용한 Javascript 풀이법 function solution(seoul) { let answer = ''; // for문을 이용한 방법 for (let i = 0; ..

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

    문제 설명 단어 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명 이..

    [프로그래머스 알고리즘 테스트] 짝수와 홀수

    문제 링크 문제 주어진 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 만들어 주세요 제한 조건 num은 int 범위의 정수입니다. 0은 짝수 입니다. 입출력 예 num return 3 "Odd" 4 "Even" 풀이법 나머지 연산 "%"만 알고 있다면 금방 풀 수 있는 문제 정수를 2로 나눈 나머지가 0일 경우 짝수, 0이 아닐 경우 홀수이다. function solution(num) { let answer = ''; if (num % 2 === 0) { return answer = "Even" } else { return answer = "Odd" } return answer; } 삼항 연산자 풀이법 function solution(num)..

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

    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(..

    [알고리즘 테스트] 문자열 정수로 변환하기

    문제 풀이법 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. s의 길이는 1 이상 5이하여야 합니다 s의 맨앞에는 부호가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 0으로 시작하지 않습니다. s를 int형으로 변환하면 된다. 코드 function solution(s) { return Number(s); } 다른 사람의 풀이 // 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다. // 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다. function strToInt(str){ return str/1 } // 아..

    [알고리즘 테스트 대비] 사분면 고르기

    문제 두줄의 입값 각 X, Y 값을 구분해 어느 사분면에 속하는지 출력한다. 단 입력값이(5,12)일시 제 1사분면에 속한다. 그러므로 1을 출력한다. 풀이법 먼저 X값이 음인지 양수인지 구분한 뒤 Y값이 음수인지 양수인지를 판단하여 해당 사분면을 출력한다. 코드 // readline 모듈 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let input = []; rl.on('line', function (line) { input.push(parseInt(line)); }).on('close', function () { const..