문제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-- // 카운터가 음수가 되는 ..
문제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/12922 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이수, 수박, 수박수, 수박수박, 이런식으로 수박을 n에 따라 표현한다.짝수일때는 수박을 n/2번 반복해주면 되지만 n이 홀수일때는 뒤에 "수"를 덧붙여줘야 하므로 조건문으로 처리해 준다.function solution(n) { let result = "수박".repeat(Math.floor(n / 2)); if (n % 2) { result += "수"; } return result;}
문제https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이우선, 0으로 채운 n x n 크기의 배열을 만들어 준다. // 결과를 저장할 이차원 배열을 n x n 크기로 만들기 const result = Array.from({ length: n }, () => Array(n).fill(0)); 나선형으로 변수를 채우기 위해 필요한 방향 변수를 정의 해놓는다. let num = 1; let row = 0, col = 0; let dr = 0, ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이배열을 돌면서, 1이 나오면 그 주변을 x로 변경한다. 단 1이 적혀있는 경우에는 1을 유지한다.배열을 다 순환한 다음에 0의 갯수를 세어 반환한다.function solution(board) { board.forEach((line, i) => { line.forEach((cell, j) => { if (cell === 1) { // 왼쪽 if (j ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/181893 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이배열을 돌면서 조건에 맞게 slice로 잘라낸걸 다시 할당해준다.이때 주의할 점은 slice는 배열을 자를때 end 인덱스 앞으로 잘린다는 사실 기억해야 된다.function solution(arr, query) { for (i = 0; i