본문 바로가기

programming study/Algorithm

(275)
[프로그래머스] N-Queen - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) ​ ​ let count = 0; ​ // 퀸의 위치가 괜찮은지 확인하는 함수 // row: 놓아진 퀸의 행 function check(board, row){ // 입력된 곳까지 이전 말의 열 위치 확인 for (let i = 0; i
[프로그래머스] 모음 사전 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(word) { // 알파벳 모음 const alphabet = ['A', 'E', 'I', 'O', 'U']; let count = 0; let endFlag = false; // 단어를 만드는 DFS function DFS(makedWord) { if (makedWord === word || endFlag) { endFlag = true; return; } if (makedWord.length > 5){ return; } count += 1; for (let i = 0; i
[프로그래머스] 멀리 뛰기 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // 메모이제이션 // 칸수에 따른 해 // n번째 해 = (n - 1번째 해) + (n -2번째 해) const memo = [0, 1, 2, 3, 5]; ​ ​ function solution(n) { if (memo[n]) return memo[n]; for (let i = 5; i
[프로그래머스] 뉴스 클러스터링 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // 자카드 유사도를 구하는 함수 function getJaccardCoefficient(a, b) { // 모든 집합이 공집합이면 1을 return if(a.length === 0 && b.length === 0) { return 65536; } // 두 집합의 단순 병합 const merged = [...a, ...b]; // 두 집합의 교집합 const intersection = []; for (let bElement of b) { if (a.includes(bElement)) { a.splice(a.indexOf(bElement), 1); intersection.push(bElemen..
[프로그래머스] 구명보트 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(people, limit) { // 보트 카운트 let boatCount = 0; // 시작 지점 let startIndex = 0; // 끝 지점 let endIndex = people.length - 1; // 입력받은 사람 몸무게를 오름차순 정렬 people.sort((a, b) => a - b); // 사람들이 구명보트에 다 탈때까지 실행 while (startIndex
[프로그래머스] 튜플 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(s) { const answer = []; // 주어진 s를 배열로 변환 const sArray = s // 필요없는 중괄호 제거 .replace(/{{|}}/g, '') // 중괄호 묶음을 기준으로 배열로 변환 .split('},{') // 각 요소들을 배열로 변환 .map(elements => elements.split(',')) // 배열 길이를 기준으로 오름차순 장렬 .sort((a, b) => a.length - b.length elements.forEach(element => answer.indexOf(Number(element)) === -1 &&..
[프로그래머스] 피로도 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) ​ function solution(k, dungeons) { let answer = 0; // 각 던전을 체크하는 배열 const checkedArray = new Array(dungeons.length).fill(false); // 깊이 우선 탐색 함수 선언 function DFS(k, dungeons, count, checkedArray) { // 모든 경우의 수를 순회 for (let i = 0; i = dungeons[i][0]) { // 방문 체크 checkedArray[i] = true; // 재귀 호출 DFS(k- dungeons[i][1], dungeons, count + 1..
[프로그래머스] 신규 아이디 추천 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(new_id) { let convertedId = new_id // 1. 소문자로 치환 .toLowerCase() // 2. 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자 제거 .replace(/[^\w-_.]/g, '') // // 3. 마침표가 2번 이상 연속된 부분을 하나의 마침표로 치환 .replace(/\.{2,}/g, '.') // // 4. 마침표가 처음이나 끝에 위치한다면, 제거 .replace(/^\.|\.$/g, '') // // 5. 빈문자열이면 a를 대입 .replace(/^$/, "a") // // 6...