[프로그래머스] 230911 코딩테스트 연습 1. x만큼 간격이 있는 n개의 숫자 function solution(x, n) { var answer = []; for(let i=1; i 문자열로 바뀜 function solution(n) { var answer = []; let splitedNum =n.toString().split(''); let length = splitedNum.length; for(let i = length-1; i >= 0; i--) { answer.push(parseInt(splitedNum[i])); } return answer; } 3. 문자열을 정수로 바꾸기 function solution(s) { var answer = 0; answer = Number(s); return answer; } 4. 문자열 내 p와 y.. [프로그래머스] 230910 코딩테스트 연습 1. 평균 구하기 function solution(arr) { var answer = 0; arr.forEach(i => { answer +=i; }) return answer/arr.length; } 2. 나머지가 1이 되는 수 찾기 function solution(n) { var answer = 0; let result = 0; for(let i=2; i [Algorithm] 8퀸 문제 알고리즘 (재귀) 💜 8퀸 문제란? - 8x8 체스판에 8개의 퀸을 배치한다. - 조건: 어떤 퀸도 다른 퀸을 위협해서는 안된다 - 추가 설명: 퀸은 상하좌우, 대각선 4방향으로 거리 제한 없이 이동할 수 있는 기물 💜 어떤 기능을 하는 함수를 구현해야하는가? (문제 정의) - 각 열에 퀸 하나만 배치한다. (규칙1) - 각 행에 퀸 하나만 배치한다. (규칙2) - 하나의 퀸은 상하좌우, 대각선 4방향으로 거리 제한 없이 이동할 수 있다. (규칙3) => 각 퀸은 상대 퀸의 이동 경로를 방해하지 않으면서 위치해야 한다. 💜 문제를 어떻게 해결할 것인가? (아이디어 얻기) 1) 분할정복(Divide and conquer): 큰 문제를 작은 문제로 세분화하여 해결 2) 가지 뻗기 (Branch) : 가지를 뻗으며 모든 조합을.. [Algorithm] 하노이의 탑 알고리즘 (재귀) 💜 하노이의 탑이란? 1) 정의 - 하노이의 탑은 퍼즐의 일종으로, 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있다. 2) 조건 한 번에 한개의 원판만 옮길 수 있다. 가장 위에 있는 원판만 이동할 수 있다. 큰 원판이 작은 원판 위에 있어서는 안 된다 3) 목표 - 세 막대를 왼쪽부터 A, B, C라고 가정하자. - 위 조건에 맞게 모든 원판을 A에서 C로 옮겨야 한다. 💜 어떤 기능을 하는 함수를 구현해야하는가? (문제 정의) - 원반의 이동 횟수를 최소화한다. - 각 원반을 옮기는 모든 순서를 출력한다. => 원반 개수 N개를 입력 받아, 모든 원반을 C막대에 옮기는 모든 과정을 출력한다. .. [프로그래머스] 230731 코딩테스트 연습 1. 정사각형으로 만들기 function solution(arr) { var answer = [[]]; let rowNum = arr.length; let colNum = arr[0].length; if (rowNum > colNum) { arr.forEach( v => { for (let i=0; i [프로그래머스] 230730 코딩테스트 연습 1. 커피 심부름 // 메뉴 종류가 중요! (아메리카노, 카페라떼) function solution(order) { var answer = 0; order.forEach( i => { if (i.includes("americano") || i.includes("anything")) answer += 4500; else if (i.includes("cafelatte")) answer += 5000; }) return answer; } 2. 조건에 맞게 수열 변환하기 3 function solution(arr, k) { var answer = []; answer = arr.map ( i => (k%2==1) ? i*k : i+k); return answer; } 3. l (소문자 L)로 만들기 // a: 9.. [프로그래머스] 230729 코딩테스트 연습 1. 배열의 원소 삭제하기 function solution(arr, delete_list) { var answer = []; // ** arr와 delete_list의 중복 값(교집합) 찾기 const overlap = arr.filter( i => delete_list.includes(i)); // arr와 overlap의 중복 값을 제외한 배열 생성 answer = arr.filter ( i => !(overlap.includes(i))); return answer; } 2. 부분 문자열인지 확인하기 function solution(my_string, target) { var answer = 0; let substr = []; // 부분 문자열 배열 생성 for (let i=0; i (a-b}^2의 .. [프로그래머스] 230728 코딩테스트 연습 1. 뒤에서 5등 위로 function solution(num_list) { var answer = []; // ** 숫자 기준 정렬 방법: sort((a,b) => a-b) answer = num_list.sort((a,b) => a-b); answer = answer.slice(5); return answer; } 2. 전국 대회 선발 고사 function solution(rank, attendance) { var answer = 0; let att_dict = {}; // 참가 안 한 학생들의 등수를 0으로 처리 attendance.forEach ( (v, i) => { if (v == false) rank[i] = 0; }) // 참가한 학생들의 번호, 등수를 딕셔너리에 저장 (key, value.. [프로그래머스] 230727 코딩테스트 연습 1. 배열 만들기 6 function solution(arr) { var stk = []; stk.push(arr[0]); for (let i=1; i { if (!temp.includes(i)) { temp.push(i); } }) for (let v=0; v { arr2Sum += j; }) // 조건식 if (arr1.length > arr2.length) { answer = 1; } else if (arr1.length arr2Sum) { answer = 1; } else if (arr1Sum < arr2Sum) { answer = -1; } else.. [프로그래머스] 230726 코딩테스트 연습 1. x 사이의 개수 function solution(myString) { var answer = []; myString = myString.split("x"); myString.forEach( i => { answer.push(i.length); }) return answer; } 2. 문자열 잘라서 정렬하기 function solution(myString) { var answer = []; answer = myString.split("x").filter(v => v!="").sort(); return answer; } 3. 간단한 식 계산하기 function solution(binomial) { var answer = 0; let arr = binomial.split(" ") let a = Numbe.. [프로그래머스] 230725 코딩테스트 연습 1. A 강조하기 function solution(myString) { var answer = ''; myString = myString.split(''); for (let i=0; i replaceAll : my_string; return answer; } 3. 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 function solution(myString, pat) { var answer = ''; let res = []; // 부분 문자열 중, pat을 가지고 있는 부분 문자열 판별 myString.split("").forEach( (v, i)=> { const subStr = myString.slice(0, i+1); if (subStr.endsWith(pat)) { // ** endsWith :.. [프로그래머스] 230724 코딩테스트 연습 1. 조건에 맞게 수열 변환하기 function solution(arr) { var answer = 0; let res = 0; let arr1 = []; let arr2 = []; arr1 = arr; while (true) { // map 사용! arr1을 이용해서 arr2 만들기 arr2 = arr1.map( i => { if (i%2==0 && i>=50) { return i/2; } else if (i%2==1 && i a == arr2[i]); if (compare) { break; // arr1과 arr2가 같으면 break; } answer++; arr1 = arr2; // 현재 배열(arr2)을 이전 배열(arr1)에 저장 } return answer; } - every함수와 map함수를.. 이전 1 2 3 4 5 다음