본문 바로가기

알고리즘/프로그래머스32

[자바스크립트/알고리즘] 프로그래머스 - 최댓값과 최솟값 문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최솟값과 최댓값을 찾아 이를 "(최솟값) (최댓값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입출력 예 s return "1 2 3 4" "1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" 코드 function solution(s) { let nums = []; s.split(' ').map((ch) => {nums.push(parseInt(ch))}) let max = num.. 2021. 5. 15.
[자바스크립트/알고리즘] 프로그래머스-위장 [문제 설명] 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. [제한사항] clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. c.. 2021. 5. 11.
[자바스크립트/알고리즘] 프로그래머스-직사각형 별찍기 문제 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 사항 n과 m은 각각 1000 이하인 자연수입니다. //주어진 부분 process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); // let str = ""; for(let i = 0; i < b; i++){ str += "*".repeat(a) + "\n"; } console.log(str); }); repeat() 메소드를 이용하여 *를 a번 반복하여.. 2021. 1. 28.
[자바스크립트/알고리즘] 프로그래머스- H-index 문제 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 문제를 보고 처음 든 생각은 이게 무슨 .. 2021. 1. 26.
[자바스크립트/알고리즘] 프로그래머스- 3진법 뒤집기 [문제] 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. [제한 사항] n은 1 이상 100,000,000 이하인 자연수입니다. [나의 풀이] function solution(n) { let answer = n.toString(3).split("").reverse().join("");; return parseInt(answer, 3); } n(예시: 125)을 3진법 문자열로 만든 다음(11122) split으로 하나씩 나누었다.(['1', '1', '1', '2', '2']) 그리고 이 배열을 reverse()를 이용해서 뒤집고(['2','2','1','1','1']), join으로 .. 2021. 1. 25.
[자바스크립트/알고리즘] 프로그래머스 - 두 개 뽑아서 더하기 문제 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. [나의 풀이] function solution(numbers) { let answer = []; for(let i = 0; i < numbers.length; i++){ for(let j = i+1; j < numbers.length; j++){ let sum = numbers[i] + numbers[j]; if(answer.indexOf(sum) < 0){ answer.. 2021. 1. 25.