프로그래머스, 자바스크립트) 예산
·
개발/알고리즘(코딩테스트)
예산https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이메모리: 33.7 MB, 시간: 6.48 ms d는 부서별로 신청한 금액이 들어있는 배열, budget은 예산이다. 최종적으로 구해야하는 건 지원할 수 있는 물품의 수. 예산이 적은 팀부터 처리하기 위해 금액을 오름차순으로 정렬한다.각 팀의 요청 금액이 남은 예산을 초과하면 반복을 중단하고 초과하지 않으면 금액을 예산에서 차감하고 결과 값을 증가시킨다.function solution(d, budget) { let result = 0; let ..
프로그래머스, 자바스크립트) 이진 변환 반복하기
·
개발/알고리즘(코딩테스트)
이진 변환 반복하기https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=javascript 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이메모리: 36.6 MB, 시간: 13.11 ms 먼저 필요한 값을 변수로 뽑는다.1이 될때까지 반복 0의 개수는 문자열을 '0' 기준으로 나눈 뒤 공백의 개수를 세어 계산했고이진 변환 횟수는 변환이 한 번 일어날 때마다 1씩 증가시켰다.function solution(s) { //이진 변환 횟수와 변환 과정에서 제거된 0를 배열에 담아라... let num = s; let count = 0; ..
프로그래머스, 자바스크립트) 두 개 뽑아서 더하기
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=javascript풀이우선 중복을 제거하기 위해 집합을 만든다.배열을 이중반복으로 돌면서 두 가지 수를 모두 뽑아 더해준 후 집합에 넣는다 (중복은 걸러짐)집합을 다시 배열로 변환 후 오름차순으로 정렬한다.function solution(numbers) { const uniqueSums = new Set(); // 중복 제거용 Set const n = numbers.length; for (let i = 0; i a - b);}// 테스트console.log(solution([2, 1, 3, 4, 1])); // [2, 3, 4, 5, 6, 7]conso..
프로그래머스, 자바스크립트) 올바른 괄호
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이 여는 괄호 '('를 만나면 카운터를 증가닫는 괄호 ')'를 만나면 카운터를 감소.카운터가 음수가 되는 순간, "("가 ")"보다 많다는 것으로 문자열이 잘못 짝지어진 것이다.더이상 체크할 필요없이 false 처리 function solution(s) { //카운트 체크 let count = 0 for (const char of s) { char === '(' ? count++ : count-- // 카운터가 음수가 되는 ..
프로그래머스, 자바스크립트) JadenCase 문자열 만들기
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12951?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이일차 풀이. map을 돌면서 첫글자가 숫자라면 통과 문자라면, 첫 글자는 대문자, 첫 글자 외에 나머지 글자는 소문자처리=> 런타임 에러... 다시 최적화 해보자function solution(s) { let answer = s.split(" ").map((x) => { return isNaN(x[0]) ? x[0].toUpperCase() + x.slice(1)..
프로그래머스, 자바스크립트) 최솟값 만들기
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이일차적인 풀이는 우선 최소의 합을 만들기 위해 큰 수, 작은 수로 정렬하여 곱해준걸 합산한다.function solution(A,B){ let answer = 0; //곱한게 최소가 되려면, 큰 수 * 작은 수 const BigA = Math.max(...A) const BigB = Math.max(...B) if(BigA > BigB) { const sortA = A.sort((a,b..
프로그래머스, 자바스크립트) 최댓값과 최솟값
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이공백을 기준으로 쪼개서 배열을 만든 후, string 숫자들을 number로 형변환한다변환한 숫자들 중 최소 최대를 찾기위해 Math 매서들을 이용한다.function solution(s) { const arr = s.split(" ").map(Number); // 문자열을 숫자로 변환 return `${Math.min(...arr)} ${Math.max(...arr)}`;}
프로그래머스, 자바스크립트) 숫자의 표현
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이문제 접근을 생각해보면...1+2+3+4 연속된 자연수를 가져야 되니 일단 반복문을 돌려서 숫자를 준비한다.그러면 1+2+3 ... , 2+3+4..., 이런식으로 처음 시작되는 숫자를 기준으로 더한 값을 구할 수 있다. n이 되는 연속 합을 찾기 위해 n이 되면 answer를 증가시키고 쓸데없는 반복이 없도록  n 이상이면 breakfunction solution(n) { let answer = 0; for (let i = 1; i ..
프로그래머스, 자바스크립트) 삼총사
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/131705?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이function solution(number) { let count = 0; const len = number.length; // 3중 반복문을 사용하여 모든 가능한 조합을 확인 for (let i = 0; i
프로그래머스, 자바스크립트) 로또의 최고 순위와 최저 순위
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이최고 순위와 최저 순위를 알기 위해서는 두 가지 케이스를 생각하면 된다.가지고 있는 로또 번호 중 당첨 번호 + 미확인 번호가 전부 일치 가지고 있는 로또 번호 중 당첨 번호 + 일치하는 번호 없음전체 로또 번호를 돌면서 , 맞은 수를 세고 0으로 표기된 부분을 세준다.그다음 최고, 최저를 계산해 등수로 환산한다.function solution(lottos, win_nums) { let zeroCount = 0; let correctC..